Spring REST API修改" oauth / token" org.springframework.security.oauth2.provider.endpoint TokenEndpoint返回其他信息

时间:2016-12-08 22:22:38

标签: java spring spring-security oauth

您好我正在寻找Spring安全性的一些帮助,我有一个服务于IOS和Android堆栈的Spring REST API,我们有一个oauth / token端点,用于登录到应用程序,确认后它会发送回令牌。它是一个弹出的弹簧安全类org.springframework.security.oauth2.provider.endpoint。我正在尝试从响应中向用户发送响应中的其他信息,以便在登录时整合来自移动设备的api呼叫。我不知道该怎么做,或者最好的方法是什么......我应该创建一个新的TokenEndpoint类吗?这就是我为spring-security配置的一些XML的方法。

 <!-- OAUTH CONFIGS -->
<bean id="oauthAuthenticationEntryPoint" class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
    <property name="realmName" value="hcnavigator" />
</bean>

<bean id="clientCredentialsTokenEndpointFilter" class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter">
    <property name="authenticationManager" ref="clientAuthenticationManager" />
</bean>

<bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased">
    <constructor-arg>
        <list>
            <bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter" />
            <bean class="org.springframework.security.access.vote.RoleVoter" />
            <bean class="org.springframework.security.access.vote.AuthenticatedVoter" />
        </list>
    </constructor-arg>
</bean>

1 个答案:

答案 0 :(得分:0)

TokenEnhancer(http://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/provider/token/TokenEnhancer.html)就是您所需要的。您可以将其注入令牌服务(http://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/provider/token/DefaultTokenServices.html)。生成令牌后将调用TokenEnhancer,您可以在其enhance(...)方法中为令牌响应添加其他信息。