【问题标题】:Integrate Apache Shiro with RestEasy将 Apache Shiro 与 RestEasy 集成
【发布时间】:2015-03-20 21:37:12
【问题描述】:

我有一个使用 RestEasy 实现的 REST 提供程序。目前 API 使用方法级别的安全性,但我们更喜欢 Shiro 的基于 URL 的安全性。我们的应用程序使用 CDI 进行依赖注入,如果可以将当前登录的用户注入到 bean 中,那就太好了,因为这将允许我们根据用户角色改变我们的响应。

是否有任何教程或示例说明如何做到这一点?

【问题讨论】:

    标签: resteasy shiro


    【解决方案1】:

    你可以注入SecurityContext来获取UserPrincipal:

    @Context
    private SecurityContext securityContext;
    ...
    Principal principal = securityContext.getUserPrincipal();
    

    如果您需要有关用户的更多信息,您可以使用 CDI 生产者来获取用户,例如一个数据库:

    public class UserProducer {
    
        @Inject 
        private HttpServletRequest request;
    
        @Produces
        public User getUser() {
            Principal principal = request.getUserPrincipal();
            User user = db.fetchUser(principal.getName());
            return user;
        }
    
    }
    

    然后像这样注入用户:

    @Inject
    private User user;
    

    【讨论】:

    • 我不知道,抱歉。我回答了如何注入当前登录用户的问题。
    猜你喜欢
    • 2015-05-13
    • 2014-10-13
    • 2012-04-22
    • 2014-04-07
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2016-12-20
    • 2014-03-03
    相关资源
    最近更新 更多