当前位置: 首页 > 知识库问答 >
问题:

Keycloak安全的Spring Boot应用程序:尝试配置公共可用页面

太叔景同
2023-03-14

我们有一个Keycloak服务器来保护我们的Spring Boot应用程序。到目前为止效果很好。然而,我们现在需要一个忘记密码页面,这必须是可访问的,无需登录当然。我们无法做到这一点。我们正在实现KeycloakWebSecurityConfigurerAdapter并重写Configure(HttpSecurity)方法。实现如下所示:

super.configure(http);
http.csrf().disable()
    .exceptionHandling()
    .accessDeniedPage("/accessDenied");
http.anonymous.disable();
http.authorizeRequests();

仅使用该代码,除了根页面之外,实际上每个页面都可以自由访问。只要我们在antmatcher()anyrequest()方法后面加上permitall()fullyauthenticated()的调用,就可以区分允许和不允许的页面,所有页面都是安全/不允许的。我们玩了很多,试图在这里和其他任何地方找到帮助,但没有找到解决方案。当前实现的示例是:

http.authorizeRequests().antMatchers(HttpMethod.GET, "/public/forgotPassword").permitAll()
        .anyRequest().fullyAuthenticated();

如前所述,结果是每个页面都需要身份验证,Public/ForgotPassword页面也需要身份验证。有人知道问题可能是什么吗?

共有1个答案

羊舌赞
2023-03-14

我实现了这个springboot.keycloak.mre1以一种简化的方式演示我以前的一个项目是如何实现我认为您的请求的。

简而言之,解决方案的要点是…

…
public class SecurityConfiguration extends KeycloakWebSecurityConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {
        
        super.configure(http);
    
            http.authorizeRequests().antMatchers("/login", "/login.html")
                   .permitAll().antMatchers("/dashboard", "/dashboard.html")
                     .authenticated();              
    }
    …
}

构建和运行MRE的步骤非常简单。但如果你在建造或运行它时遇到困难,请让我知道我是否能以任何方式帮助你。

 类似资料:
  • 问题内容: 我将使用keycloak保护我的golang应用程序,但keycloak本身不支持go语言。 github中有一些go适配器作为一个开放项目,已经将openId connect协议实现为提供程序服务,但是它们没有提供有关如何将库与应用程序集成的示例或文档。 如何使用Golang与Keycloak互动? 问题答案: 如您所指出的,没有用于golang的官方keycloak适配器。但是实现

  • 我有一个用Keycloak保护的JEE服务(JaxRx),身份验证是有效的,但是当我想用应用安全性时,我得到了。 该服务部署在Wildfly11中,关于文档,我使用和下一个配置文件()将安全上下文传播到EJB层。 我在Wildfly中安装了keycloak。 如图中所示,请求用户是在RequestContext中标识的,但在SessionContext(上下文)不存在的情况下,它显示而不是用户。

  • 我试图迁移我们稳定的应用服务器,以从Spring Cloud配置服务器获取它们的配置。每个应用在配置服务器上都有一个文件,我们可以使用配置文件(在名为的文件中,或者使用多配置文件YAML文档)为每个环境进行不同的配置应用程序,我们甚至可以在另一个配置文件中包含一个配置文件,使用来提供某种继承-到目前为止,一切都很好。 但是,我们只能在彼此中包含来自同一应用程序的配置文件,并且我们从同一配置服务器配

  • 攻击者无时无刻不在准备对你的 Web 应用程序进行攻击,因此提高你的 Web 应用程序的安全性是非常有必要的。幸运的是,来自The Open Web Application Security Project (OWASP) 的有心人已经整理了一份包含了已知安全问题和防御方式的全面的清单。这份清单对于具有安全意识的开发者来说是必读的。由 Padraic Brady 整理的 Survive The D

  • [错误]原因:java.lang.IllegalStateException:HttpAuthenticationFactory的机制[KEYCLOAK]中没有必需的机制“Basic”。“}}}}

  • 在我们的配置服务器中,我们有以下应用程序属性文件: 可以从URI访问这些属性,如: 下面是我们的引导程序。helloApp应用程序的yml: 我使用的是Spring Boot版本2.2.4。helloApp-dev.properties在应用程序中加载成功,但不是通用配置。