spring-security Keycloak Springboot承载仅用于特定端点,而非承载用于另一个端点

o2gm4chl  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(133)

我正在尝试使用keycloak springboot适配器。我想让一些带有“/api”的端点只与bearer一起工作。
但是我还希望端点“/login”不是仅支持承载的端点,并且如果用户未通过身份验证,则将其重定向到keycloak OIDC登录页面。
我怎么才能做到呢?
我现在所拥有的只是应用程序属性中每个端点的载体。
提前感谢您的回答:)

ghhaqwfi

ghhaqwfi1#

在网络安全会议中,

  • 启用匿名
  • 在http-security ant-matchers中,使用permitAll()为公共路由添加一个条目
@Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.anonymous();
        http.authorizeRequests()
                .antMatchers("/login").permitAll()
                .anyRequest().authenticated();
        return http.build();
    }

PS

Keycloak spring adapters are deprecated
或者,您可以用途:

  • 教育课程
  • spring-boot-starter-oauth2-resource-server教程there(需要更多Java配置)

相关问题