【问题标题】:Add additional info in authetication reply在身份验证回复中添加附加信息
【发布时间】:2018-10-30 22:27:12
【问题描述】:

使用 Grails 3.3.5 和 Spring-security-rest 2.0.0-RC1 处理 REST API 应用程序。

当我使用 /api/login 登录时,我得到了正确的结果:

{
    "username": "name.surname@acme.com",
    "roles": [
        "ROLE_USER"
    ],
    "access_token": "qgsbpk05jfrbf33xx08m8r4govkg53d1"
}

我想在回复中添加其他信息,例如用户的姓名和姓氏。谢谢

更新 感谢 Evgeny 为我指明了正确的方向并阅读了我还实现了 UserDetailsS​​ervice 的手册。 来自手册:

如果您想在 JSON 响应中呈现其他信息, 你必须:

Configure an alternative userDetailsService bean that retrieves the additional information you want, and put it in a principal object.

Configure an alternative accessTokenJsonRenderer that reads that information from the restAuthenticationToken.principal object.

【问题讨论】:

    标签: spring grails spring-security spring-security-rest


    【解决方案1】:

    您可以覆盖 accessTokenJsonRenderer bean

    1. 创建类:
    class MyRestAuthTokenJsonRenderer implements AccessTokenJsonRenderer {
        @Override
        String generateJson(AccessToken accessToken){
            // create response, see DefaultAccessTokenJsonRenderer.groovy from https://github.com/alvarosanchez/grails-spring-security-rest
            return your_formatted_json_response
        }
    }
    
    1. 覆盖 resources.groovy 中的 bean
    beans = {
       accessTokenJsonRenderer(MyRestAuthTokenJsonRenderer)
    }
    

    【讨论】:

    • 是不是 accessTokenJsonRenderer 而不是 restAuthenticationTokenJsonRenderer?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多