springBoot 配置 keycloak 白名单(keycloak放开的路径,不需要登录即可访问)

 为不需要权限即可访问的路径设置白名单(白名单不需要设置 auth-roles

keycloak:
  # 声明客户端所在的realm
  realm: geoeast
  # keycloak授权服务器的地址
  auth-server-url: http://192.168.1.111:8180/auth
  # 客户端名称
  resource: community-front
  # 声明这是一个公开的客户端,否则不能在keycloak外部环境使用,会403
  public-client: true
  # 这里就是配置客户端的安全约束,就是那些角色映射那些资源
  security-constraints:
    # 角色和资源的映射关系。下面是多对多的配置方式 ,这里只配置base_user才能访问
    - auth-roles:
        - developer
      security-collections:
        - name: base
          patterns:
            - '/front/purchaseIntention/*'
            - '/front/userCenterDestail/*'
            - '/front/userCenterDestail_api/*'
            - '/front/addResourceFavorite/*'
    #为不需要权限即可访问白名单,不设置auth-roles)。
    #请求非/profile/resourceCenter/接口后会跳转到Keycloak中定义的登录页面
    # 白名单页面,不需要设置authRoles,为空就行
    - authRoles:
    - security-collections:
        - patterns:
            - '/profile/resourceCenter/*'
            - '/static/*'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot可以很方便地集成Keycloak,下面是一个简单的步骤: 1. 添加Keycloak依赖:在你的项目的`pom.xml`文件中添加以下依赖: ```xml <dependency> <groupId>org.keycloak</groupId> <artifactId>keycloak-spring-boot-starter</artifactId> </dependency> ``` 2. 配置Keycloak:在你的`application.properties`或`application.yml`中添加Keycloak配置信息,比如: ```yaml keycloak.realm=your-realm keycloak.auth-server-url=http://your-keycloak-url/auth keycloak.ssl-required=external keycloak.resource=your-client-id keycloak.credentials.secret=your-client-secret keycloak.use-resource-role-mappings=true ``` 3. 创建Keycloak的安全配置类:创建一个`KeycloakSecurityConfig.java`类,添加以下内容: ```java @Configuration @EnableWebSecurity @ComponentScan(basePackageClasses = KeycloakSecurityComponents.class) public class KeycloakSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider(); keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper()); auth.authenticationProvider(keycloakAuthenticationProvider); } @Bean public KeycloakSpringBootConfigResolver keycloakConfigResolver() { return new KeycloakSpringBootConfigResolver(); } @Bean @Override protected SessionAuthenticationStrategy sessionAuthenticationStrategy() { return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl()); } @Override protected void configure(HttpSecurity http) throws Exception { super.configure(http); http.authorizeRequests() .antMatchers("/your-secured-url").authenticated() .anyRequest().permitAll(); } } ``` 4. 创建一个受保护的API:在你的控制器类中添加一个需要认证的API接口,比如: ```java @RestController @RequestMapping("/api") public class YourController { @GetMapping("/your-secured-url") public String yourSecuredEndpoint() { return "This is a secured endpoint"; } } ``` 现在你的Spring Boot应用已经集成了Keycloak,可以通过访问`/api/your-secured-url`来测试保护的API接口。当访问该接口时,系统将要求用户进行认证并验证其授权信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值