【发布时间】:2015-05-16 01:14:59
【问题描述】:
我正在使用 Spring+Oauth2 来保护 Web 服务,并且我添加了自定义授权类型 (custom-grant):
<bean id="myTokenGranter" class="com.example.oauth2.MyTokenGranter" />
<oauth:authorization-server client-details-service-ref="client-details-service" token-services-ref="tokenServices">
<oauth:refresh-token/>
<oauth:password/>
<oauth:custom-grant token-granter-ref="myTokenGranter" />
</oauth:authorization-server>
Spring 调用实现就好了。但是我不知道我应该如何在这里实际生成一个令牌。我看到他们使用了一个名为“RandomValueStringGenerator”的类,但我不确定是否没有更好的方法,而且我不知道如何生成一个“好”的令牌,它应该有多长,或者 spring 是否检查令牌的唯一性实际上等等。有没有办法可以在这里调用 Spring 自己的生成器部分?
现在这是我的 tokengranter 类:
public class MyTokenGranter implements TokenGranter {
private RandomValueStringGenerator generator = new RandomValueStringGenerator();
@Override
public OAuth2AccessToken grant(String grantType, TokenRequest tokenRequest) {
//...logic added here later
return new DefaultOAuth2AccessToken(generator.generate());
}
}
我找不到一个很好的例子,并且在 spring ouath2 源代码中只有一个实现了一半的测试 tokengranter。
【问题讨论】:
-
还有 org.springframework.security.oauth2.provider.token.AbstractTokenGranter 我可以扩展,但我不知道如何在我的 xml 配置中传递构造函数参数?
标签: java spring spring-security spring-security-oauth2