【问题标题】:Multiple Authentication Provider in SpringBootSpring Boot 中的多个身份验证提供程序
【发布时间】:2019-08-06 04:21:21
【问题描述】:

在我的 SpringBoot 应用程序中,我试图为两个不同的区域实现两种不同的授权。

区域 1 [API]: /api/**

区域 2 [管理员]: /admin/**

区域 1 [API] 是我的应用程序的 API 部分,我在其中实现了 JWT 身份验证。每个以/api 开头的请求都需要一个包含 jwt 令牌的 Authorization 标头。

区域 2 [Admin]:是管理区域。我想使用浏览器中的 URL 登录的位置,例如 (/admin/login)。我想将我的用户名和密码保存在 application.properties 中,对于以/admin 开头的任何 URL,我希望对用户进行身份验证(基于会话)。在这种情况下,我想应用内存中的身份验证。我正在寻找为两个不同领域实施这两种不同身份验证的想法。

【问题讨论】:

    标签: spring-boot authentication


    【解决方案1】:

    您可以使用.authorizeRequests() 方法为该安全配置文件配置端点。

    WebSecurityConfigurerAdapterResourceServerConfigurerAdapter 文件中的void configure(HttpSecurity http) 方法中,您可以像这样使用

        http
        .antMatcher("/api/**")
        .authorizeRequests()
        ...
    

    然后spring security会开始授权以/api路径开头的请求。 如果在ResourceServerConfigurerAdapter 中添加它,spring oauth2 将从那里开始授权。要为/admin 等端点配置网络安全,请在您的WebSecurityConfigurerAdapter

    http
        .antMatcher("/admin/**")
        .authorizeRequests()
        ...
    

    【讨论】:

    • 无法完全理解答案
    猜你喜欢
    • 2015-04-10
    • 2012-02-18
    • 2019-08-08
    • 2012-03-07
    • 2020-07-19
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多