我目前想用Spring Cloud Gateway来保护我的微服务架构。有网页前端工程师向KeyCloak服务器验证自己,然后将令牌与每个请求一起发送。现在的情况是,只有网关应该对外公开,而单个服务将无法从外部访问。
如何在密钥斗篷服务器上验证承载令牌?
我已经在互联网上搜索了一段时间,但还没有找到任何验证令牌的内容。在任何地方,身份验证都是通过网关完成的,然后令牌由各个服务进行验证。然而,当我将网关声明为OAuth2资源服务器时,整个过程都不起作用。
我设法让它发挥作用。
我的安全配置如下:
@Configuration
@EnableWebFluxSecurity
public class SecurityConfig {
@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http.authorizeExchange(exchanges -> exchanges.anyExchange().authenticated())
.oauth2ResourceServer().jwt();
http.csrf().disable();
return http.build();
}
}
此外,我还添加了一个CorsFilter:
@Configuration
public class PreFlightCorsConfiguration {
@Bean
public CorsWebFilter corsFilter() {
return new CorsWebFilter(corsConfigurationSource());
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration().applyPermitDefaultValues();
config.addAllowedMethod( HttpMethod.GET);
config.addAllowedMethod( HttpMethod.PUT);
config.addAllowedMethod( HttpMethod.POST);
config.addAllowedMethod( HttpMethod.OPTIONS);
config.addAllowedMethod(HttpMethod.DELETE);
source.registerCorsConfiguration("/**", config);
return source;
}
}
我使用的安全依赖项是:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
我已经创建了许多生成/使用JSON数据的Web服务,并使用OAuth2和承载令牌对它们进行了保护,效果很好。 然而,现在我需要构建一个类似的Web服务来生成图像而不是JSON(即JPEG/PNG数据)。为了保持一致性,我也想用OAuth2/承载令牌来保护服务,但是这样做会使服务在基于浏览器的应用程序中更具挑战性,这些应用程序希望使用 我认为有两种方法可以解决这个问题: > 修改OAuth2基础设施
我想使用keycloak作为身份验证和授权服务器来保护spring cloud数据流服务器并管理对其endpoint的访问。 我按照Spring的文档http://docs.spring.io/spring-cloud-dataflow/docs/1.7.0.rc1/reference/htmlsingle/#configuration-security-oauth2中的描述设置了scdf服务器的
有角度的v.v4。0.2 Spring靴1.5版。2.发布 钥匙斗篷v.2。4.0.最终版本(稍后将升级) 我读了关于同样问题的邮件对话:http://keycloak-user.88327.x6.nabble.com/keycloak-user-NOT-ATTEMPTED-bearer-only-error-while-trying-to-access-server-from-client-td
我正在使用Spring云安全和Oauth2来保护我的微服务。现在Pom如下: http://maven.apache.org/xsd/maven-4.0.0.xsd" Spring靴主要等级如下: 授权服务器配置如下: 注意:身份验证管理器自动连接到授权配置中 在下面的类中,身份验证管理器被配置并返回为abean,以便可以自动连接到上面的类: 现在application.properties如下:
提前,我为这个looong问题道歉!事实上,问题并没有那么长,但是我发布了很多我的代码片段,因为我真的不知道什么与解决我的问题相关或不相关...... 我一直在尝试使用以下内容制作一个简单的poc:-Angular 8前端-用于身份验证的Keycloak服务器-Spring云后端架构:-使用Spring Cloud Security保护的Spring Cloud Gateway-Spring Cl
有没有办法只使用spring security实现CSRF保护,而不使用身份验证和授权等其他功能? 我尝试了以下配置,但它关闭了spring security的所有功能。想知道是否有一种方法可以配置csrf功能。