- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建第二种用户登录方式以及 tomcat 领域功能。这意味着未经身份验证的用户可以:
1.唤起领域签到
2. 提供有效 token 并自动登录
我正在尝试实现 2。所以我使用过滤器将请求重定向到包装器中。在该包装器内,我覆盖了 getUserPrincipal
以便可以为该用户创建主体。然后容器会识别主体并让用户进入而不重定向到登录页面。
然而现在的问题是:似乎并不是所有的请求都会得到正确的委托(delegate)人。关于 servlet 的请求以及 servlet 是否使用 Dispatcher
转发请求将获得主体集。使用 sendRedirect
的简单链接或 servlet 不会调用 getUserPrincipal
方法,因此即使用户使用方法 2 登录,也会出现登录页面。
这就像为该用户创建的主体是“临时的”一样。我想知道是否有一种方法可以将主体存储在 session 中或某个地方,以便容器知道用户已通过身份验证。
最佳答案
我已经完全做到了这一点,但我是通过使用 Tomcat JAAS 领域并提供两个登录模块来做到这一点的,一个用于票证,一个用于用户名/密码。它需要一些集成来防止在票证登录时获得登录页面。实际上在我的系统中有第三种登录方法,通过有效的客户端证书,还有第四种登录模块,为用户查找和分配角色,但是他是由前三个模块之一建立的。
我参与了一个名为 AuthenticRoast 的 Google Code 项目,在这方面有所帮助。与 Tomcat 6 和 7 以及 Glassfish 集成,尽管我还没有尝试过。
关于java - 如何在 Tomcat 中保留主体信息(即 setPrincipal?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451507/
我正在尝试构建第二种用户登录方式以及 tomcat 领域功能。这意味着未经身份验证的用户可以: 1.唤起领域签到 2. 提供有效 token 并自动登录 我正在尝试实现 2。所以我使用过滤器将请求重定
我想知道如何在用户单击记住我复选框时通过 cookie 设置 @User.Identity.Name。 Cookie 代码 if (_model.RememberMe) { HttpCooki
我是一名优秀的程序员,十分优秀!