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

Keycloak和Spring Security

吕奇
2023-03-14

谁能告诉我如何迁移keycloak和spring security。我已经遵循了http://keycloak.github.io/docs/userguide/keycloak-server/html/ch08.html#spring-security-adapter中步骤。但它很管用。我需要编写自己的提供程序吗?

我的原始spring-security.xml

    <beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-4.0.xsd
                        http://www.springframework.org/schema/util 
                        http://www.springframework.org/schema/util/spring-util.xsd
                        http://www.springframework.org/schema/security
                        http://www.springframework.org/schema/security/spring-security-3.2.xsd"
        >

    <http use-expressions="true">
        <intercept-url pattern="/index" access="isAuthenticated()" />
        <intercept-url pattern="/tasks" access="isAuthenticated()" />
        <intercept-url pattern="/dashboard" access="isAuthenticated()" />
        <intercept-url pattern="/resetPassword" access="isAuthenticated()" />
        <intercept-url pattern="/settings/**" access="isAuthenticated()" />
        <intercept-url pattern="/" access="isAuthenticated()" />
        <intercept-url pattern="/sam/**" access="hasRole('mym_security_permission-002')" />
        <intercept-url pattern="/admin/**" access="hasRole('mym_security_permission-005')" />
        <intercept-url pattern="/committee/**" access="isAuthenticated()" />
        <intercept-url pattern="/member/**" access="isAuthenticated()" />
        <intercept-url pattern="/attachment/download/**" access="isAuthenticated()" />

        <!-- access denied page -->
        <access-denied-handler error-page="/403" />

        <form-login 
            login-page="/login"
            login-processing-url="/perform_login"
            authentication-failure-url="/login?error"
            authentication-success-handler-ref="customAuthenticationSuccessHandler"
            username-parameter="username"
            password-parameter="password"
            always-use-default-target="true"
        />
        <!--success-handler-ref="customLogoutSuccessHandler"  -->
        <logout 
            logout-url="/perform_logout"
            delete-cookies="true"
            invalidate-session="true"

        />
        <!-- enable csrf protection -->
        <csrf/>

        <session-management>
            <concurrency-control max-sessions="1" />
        </session-management>
    </http>

    <authentication-manager alias="authenticationManager" erase-credentials="false">
        <authentication-provider ref="customAuthenticationProvider" />
    </authentication-manager>

</beans:beans>

我们很抱歉...

无效参数:redirect_uri

返回URL:http://localhost:8080/auth/realms/meeting/protocol/openid-connect/auth?response_type=code&client_id=mym-apps&redirect_uri=http%3a%2f%2flocalhost%3a8080%2fapp%2fsso%2flogin&state=0%2fd21c7ae9-b041-43e5-8135-8150e9895ee5&login=true

共有1个答案

葛承嗣
2023-03-14

我已经解决了这个问题。我只是将“有效重定向URI”修改为http://localhost:8080/app/*和/app/*

 类似资料:
  • 我正在使用Quarkus 1.0.1框架开发一套微服务。我希望使用KeyCloak8.0.1作为我的身份提供程序来保护这些信息。我已经在一个Docker容器中启动并运行了Keycloak,并为我的微服务配置了一个领域和相应的客户机。现在我到了我想保护他们的地步,我遇到了一个问题。 我的REST服务没有为它配置的注释或任何授权要求。这应该意味着,即使我没有经过身份验证,我也能够访问该服务。但是,当我

  • 我在通过oauth2-proxy/keycloak对kubernetes webapp进行身份验证时遇到问题。你不知道出了什么问题 WebApp(test-app.domain.com) oauth2-proxy(oauth2-proxy.domain.com) keycloak(keycloak-test.domain.com) Keycloak登录页面显示正确,但在用户登录后,我得到:500

  • 我使用的是spring boot 2.1.7版本和keycloak-spring-boot-2-starter:4.0.0.final版本。这个keycloak-spring-boot-2-starter自动下载所需的keycloak适配器依赖项,对应于4.0.0..keycloak适配器依赖项的最终版本。现在,当我调用受keycloak保护的资源(rest api需要由keycloak服务器授权

  • 我正在尝试使用Spring Security、Spring Security SAML和KeyClope设置POC。为此,我使用了Spring SAML核心项目提供的简单服务提供商示例。 只要Keycloak不需要客户端签名(已禁用客户端签名),我就设法让SAML设置正常工作。当我启用此选项时,我在Keycloak中得到以下错误和堆栈跟踪 Spring的配置如下 这是一个发送到keycloak的示

  • Keycloak 是适用于现代应用程序和服务的开源身份和访问管理解决方案。以最少的麻烦为应用程序和安全服务添加身份验证,无需处理存储用户或对用户进行身份验证,开箱即用。包含用户联合,身份代理和社交登录等功能。

  • 我目前正在使用多个Quarkus服务和Keycloak RBAC开发一个PoC。工作起来就像一个魅力,很容易引导和开始实现功能。 但我遇到了一个我无法解决的问题。想象一下: null 使JWT的持续时间超过当前的30分钟,但这只是推迟了问题并打开了一些安全门 将用户的输入存储在本地存储器中,以便在令牌刷新后进行恢复(我们也会这样做,以避免浪费用户的工作) 在JS中“静默”刷新令牌,而不让用户知道。