java.security.Principal - 在 HttpServletRequest 和 Spring Security 中创建

Posted

技术标签:

【中文标题】java.security.Principal - 在 HttpServletRequest 和 Spring Security 中创建【英文标题】:java.security.Principal - creation in HttpServletRequest and Spring Security 【发布时间】:2012-04-07 04:06:52 【问题描述】:

    我无法找到 HttpServletRequest 中的 java.security.Principal 是如何创建的 - 谁负责?它是如何完成的?它是否必须保留在 Session 中?

    它是如何连接到 Spring Security 的?

    是否有任何替代 Spring Security 的替代方案,它使用 Principal 进行用户授权/身份验证?

    如何实现自己的用户授权/身份验证,以便 Principal 包含当前用户?

【问题讨论】:

【参考方案1】:
    通常情况下,Principal 对象在成功登录后进入会话。参见documentation。 弹簧Authentication 接口扩展Principal 接口 您也可以使用Apache Shiro 实现自己的UserDetailsService,它将返回您的用户对象(它必须实现 UserDetails 接口)参见docs。

【讨论】:

【参考方案2】:

Principal 将由 Spring Security 根据您的 Spring Security 配置设置。

要实现这一点,请参阅http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity.html

【讨论】:

显然我已经看过这个文档,但我的问题是相当笼统的,不依赖于 Spring Security。

以上是关于java.security.Principal - 在 HttpServletRequest 和 Spring Security 中创建的主要内容,如果未能解决你的问题,请参考以下文章

使用servlet原生API作为参数

Shiro / CDI 注入安全主体适用于 Glassfish 但不适用于 Wildfly

Spring MVC 如何为控制器方法提供可注入