我有带有 Spring Security 5 和 OAuth2 客户端的现有 Spring Boot 应用程序,我已经成功配置了外部 OAuth2 提供程序(在我的例子中是 GitLab)的身份验证。
现在我在配置授权时遇到问题。我想要一些方法,让我编写代码来解析给定用户的角色(通过调用数据库或仅检查硬编码的用户名)。
我发现它可以通过使用PrincipalExtractor
and来实现AuthoritiesExtractor
,在一篇很好的文章中进行了描述。然而,这些类在最近的 Spring Security 中不再存在。与 Spring Security 5 兼容的替代方法是什么?
我想修剪弦,例如.
铅笔(4,99 USD)
只是一个括号数值:
4,99
我现在有点关于sed中的正则表达式,所以我这样做:sed "s#.*(##" | sed "s# USD.*##"
.但是我应该如何在javascript replace
函数中使用任何正则表达式?
我是JavaEE的新手,我创建了一个"hello world"项目,使用Hibernate作为JPA提供程序,使用gradle构建并部署到Wildfly.我想将@Stateless
bean用于数据库感知类,它将对DB执行所有操作,然后将其注入包含REST端点的所有"JAX-RS"类.
数据库类:
@Stateless
public class DatabaseManager {
@PersistenceContext
EntityManager entityManager;
public DatabaseManager() {
}
public String sayHello() {
// do some db-stuff
return "EHLO";
}
}
Run Code Online (Sandbox Code Playgroud)
REST类:
@Path("/")
@SessionScoped
public class RestMainEndpoint implements Serializable {
@EJB
private DatabaseManager databaseManager;
public RestMainEndpoint() {
}
@GET
@Path("/hello")
@Produces("text/plain")
public String helloFromDb() {
return databaseManager.sayHello();
}
}
Run Code Online (Sandbox Code Playgroud)
问题@EJB private DatabaseManager databaseManager;
始终存在null
.它永远不会被注入.
我知道REST正在运行,因为所有非数据库相关的端点都正常工作.我还假设DatabaseManager
bean已创建并初始化,因为我可以在Wildfly管理面板上看到它.
我不确定我是否正确打包和部署它 - 所有这些都是打包到单个war
部署的.我是否有必要使用 …
我正在尝试编写简单的bash脚本而且我遇到了find
命令.
当我输入时find . zad*
,我得到如下输出:
.
./lab2.sh~
./#zad2.sh#
./zad2.sh~
./zad1a.sh
./zad2.sh
./lab2.sh
./Azad2.sh~
./cdlinux.ftp.log
./Azad2.sh
./zad1a.sh~
./zad1.sh
./cdlinux.www.log
./zad1.sh~
zad1a.sh
zad1a.sh~
zad1.sh
zad1.sh~
zad2.sh
zad2.sh~
Run Code Online (Sandbox Code Playgroud)
为什么它列出我文件夹中的所有文件(./
文件名之前),然后我得到正确的查找结果.有没有办法删除该./
输出?使用sed命令在所有情况下都不起作用(当搜索路径不同时.
).
我想用相同的值填充MyStruct数组.如何以最快和最简单的方式完成?我正在运行相当低级的方法,比如memset
或memcpy
.
编辑:std::fill_n
确实符合并且工作正常.但它是C++的方式.如何在纯C中完成?
struct MyStruct
{
int a;
int b;
};
void foo()
{
MyStruct abc;
abc.a = 123;
abc.b = 321;
MyStruct arr[100];
// fill 100 MyStruct's with copy of abc
std::fill_n(arr, 100, abc); // working C++ way
// or maybe loop of memcpy? But is it efficient?
for (int i = 0; i < 100; i++)
memcpy(arr[i],abc,sizeof(MyStruct));
}
Run Code Online (Sandbox Code Playgroud) 我尝试在此命令中将 arg 传递到 docker 构建过程中:
docker-compose -f .docker/docker-compose.ecr.yml build my-app --build-arg BUILD_VERSION=5.0.0
Run Code Online (Sandbox Code Playgroud)
但我得到了错误:
ERROR: No such service: --build-arg
Run Code Online (Sandbox Code Playgroud)
根据文档docker-compose 有build-arg
参数。
.yml 文件:
version: '3'
services:
my-app:
image: 3144.dkr.ecr.us-east-2.amazonaws.com/my-app:latest
build:
context: ../
dockerfile: ./.docker/Dockerfile
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?