【问题标题】:Avoid JDBCTokenStore in spring Oauth2在 Spring Oauth2 中避免使用 JDBCTokenStore
【发布时间】:2018-11-21 10:02:46
【问题描述】:

我正在创建一个 spring oath2 应用程序。有用。我有一个疑问。

基于此 URL http://projects.spring.io/spring-security-oauth/docs/oauth2.html,只有 2 个实际选项: JdbcTokenStore,JwtTokenStore。

是否可以使用 JDBCTokenStore 但不能在 resourceServers 中引用它? 我的意思是我们不能只在 AuthorizationServer 中直接引用它,并且资源服务器可以使用来自 AuthorizationServer 的端点,而不是配置另一个直接 JDBCTokenStore 引用。

动机:希望避免在 AuthorizationServer 和多个 ResourceServer 之间共享数据库。有没有其他方法可以实现这个动机。

R

【问题讨论】:

    标签: spring-boot spring-security-oauth2


    【解决方案1】:

    在您的资源服务器中,您可以使用RemoteTokenServices。此类查询授权服务器中存在的 /check_token 端点以验证令牌。

    您可以拥有一个仅用于身份验证服务器的数据库,而另一个数据库用于您的资源服务器。

    <bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.RemoteTokenServices">
        <property name="checkTokenEndpointUrl" value="${auth.service.url:https://localhost:8443/auth-service}/oauth/check_token"/>
        <property name="clientId" value="${auth.client.name:TEST_API}"/>
        <property name="clientSecret" value="${auth.client.secret:password}"/>
        <property name="accessTokenConverter" ref="accessTokenConverter"/>
        <property name="restTemplate" ref="oauth2RestTemplate"/>
    </bean>
    

    【讨论】:

    • 听起来太完美了。谢谢。会尝试回来。我认为这消除了 ResourceServices 将任何 oauth / jwt 信息保留在其数据库中的需要。事实上,资源服务现在只有在其功能需要数据库时才能使用数据库。对吗?
    猜你喜欢
    • 2014-05-11
    • 2015-09-20
    • 2017-04-20
    • 2021-07-17
    • 1970-01-01
    • 2021-12-18
    • 2020-03-29
    • 2017-03-06
    • 2015-09-23
    相关资源
    最近更新 更多