我想得到帮助,使我的spring boot应用程序更安全。
我有一个RESTful API,目前没有实现安全性。另一个spring boot应用程序通过HTTP请求(GET、POST、PUT…)访问该API。
最近,我学习了一个REDHAT教程,该教程演示了如何使用keycloak制作一个更安全的Spring启动应用程序。
我想学习如何使用这个安全组合(springsecurity-keycloak)来使用一个桌面应用程序(也在java中)作为客户端的springstart应用程序。任何建议都会派上用场。
谢谢你塞尔索
这里有两个选项:
1)要么使用KeyCloak适配器进行Spring Boot。
2)或者只使用带Keycloak的Springs OAuth2包(因为Keycloak只是另一个OAuth2服务器)。以下是使用从Keycloak传递的JWT(基于共享密钥)的示例配置:
@Configuration
@EnableResourceServer
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class JwtSecurityConfig extends ResourceServerConfigurerAdapter{
@Override
public void configure(ResourceServerSecurityConfigurer config) {
config.tokenServices( createTokenServices() );
config.resourceId(the aud claim that you setup under Keycloak/realm/mappers);
}
@Bean
public DefaultTokenServices createTokenServices() {
DefaultTokenServices defaultTokenServices = new DefaultTokenServices();
defaultTokenServices.setTokenStore( createTokenStore() );
return defaultTokenServices;
}
private TokenStore createTokenStore(){
return createJwtTokenStore();
}
@Bean
public TokenStore createJwtTokenStore() {
return new JwtTokenStore( createJwtAccessTokenConverter() );
}
@Bean
public JwtAccessTokenConverter createJwtAccessTokenConverter() {
JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
converter.setSigningKey(shared secret that is configured in keycloak client);
return converter;
}
}
我用这个例子:https://github.com/foo4u/keycloak-spring-demo 我有钥匙斗篷。json文件在我的WEB-INF文件夹中,但当我运行应用程序时,会出现以下异常: 此异常的完整堆栈: 这段代码只是Spring Boot和KeyCloak集成的一个例子。 你能告诉我我做错了什么吗? 谢谢你的回答和时间。
我有一个问题运行Spring启动和钥匙斗篷都在docker容器。 我从在docker中运行的数据库mysql的KeyClope开始。 然后我添加了我的领域(SpringBootKey斗篷)、我的客户机(testclient)和一个角色为“user”的用户。之后,我将Spring Security性添加到我的Spring Boot应用程序中。编辑了我的申请。yml 根据我添加了我的SecurityC
我正试图实现一个带有Spring Boot Restservice的Angular应用程序,该服务由KeyClope保护。 在我的电脑上,一切正常。Angular应用程序是由KeyClope引导的(使用KeyClope Angular),因此我必须登录才能查看该应用程序。应用程序将REST调用与令牌一起发送到Spring Boot。REST服务是KeyClope。承载者仅接收令牌,并使用令牌中的角
我正在研究使用Hibernate 4.1.9注释地图的不同方法 如果我想存储一个Map,其中键是实体值的属性,标记如下所示 请注意,上面的标记不会创建连接表,而是在运行时通过查询返回Map,因此Map是动态的,您不必在map中添加元素Java查询返回它们。 现在,我希望地图的内容反映应用程序添加到地图中的内容,而不是执行动态查询。 我想储存4种不同的地图 在这些情况下,键之间没有关系 我尝试了以下
Targets key To be discussed in order to avoid _Warning: potential malicious behavior - trust data has insufficient signatures for remote repository .dkr.ecr.us-east-1.amazonaws.com/app: valid signatur
Snapshot key To rotate the snapshot key: ❯ notary -D -v -s https://127.0.0.1:4443 -d ~/.docker/trust key rotate <aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/app snapshot -r Enter passphrase for ne