【问题标题】:spring security StateKeyGenerator custom instancespring security StateKeyGenerator 自定义实例
【发布时间】:2018-03-12 23:36:18
【问题描述】:

我希望通过 Spring Security 更好地控制 OAuth2 中使用的“状态”参数。

DefaultStateKeyGenerator 只返回一个随机的 6 个字符的字符串。

AuthorizationCodeAccessTokenProvider 有一个setStateKeyGenerator,但我不确定如何让实例调用设置器。

我觉得很奇怪StateKeyGenerator 接受OAuth2ProtectedResourceDetails,但默认实现只是忽略它,并且没有关于如何配置自己的详细信息

~/repos/jtor > mvn dependency:tree | grep security
[INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.0.14.RELEASE:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:4.2.3.RELEASE:compile
[INFO] |  +- org.springframework.security:spring-security-config:jar:4.2.3.RELEASE:compile
[INFO] |  +- org.springframework.security:spring-security-web:jar:4.2.3.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-jwt:jar:1.0.8.RELEASE:compile
[INFO] \- org.springframework.security:spring-security-test:jar:4.2.3.RELEASE:test

【问题讨论】:

  • 真的....没有人有任何想法??? :-)

标签: spring-boot spring-security spring-security-oauth2


【解决方案1】:

根据您的使用情况,您可以实现自己的StateKeyGenerator,然后配置bean 以使用它。如果resource 与您的用例相关,您可以随意使用它,但可以忽略它!

这是一个可能的配置:

@Bean
public StateKeyGenerator stateKeyGenerator() {
    return new CustomStateKeyGenerator();
}

@Bean
public AccessTokenProvider accessTokenProvider() {
    AuthorizationCodeAccessTokenProvider accessTokenProvider = new AuthorizationCodeAccessTokenProvider();
    accessTokenProvider.setStateKeyGenerator(stateKeyGenerator());
    return accessTokenProvider;
}

@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES)
public OAuth2RestTemplate restTemplate() {
    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(myResource(), new DefaultOAuth2ClientContext(accessTokenRequest));
    restTemplate.setAccessTokenProvider(accessTokenProvider());
    return restTemplate;
}

【讨论】:

    猜你喜欢
    • 2019-08-22
    • 2016-05-04
    • 2016-09-04
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2012-01-28
    • 1970-01-01
    相关资源
    最近更新 更多