Ric*_*mon 2 java authentication tomcat
我需要知道tomcat何时接受针对给定上下文使用域认证的登录.我一直在寻找可用的可用侦听器(ServletContextListener和ServletContextAttributeListener),但无法弄清楚如何在登录时收到通知.对于多个上下文使用tomcat单点登录时,这也应该有效.有任何想法吗?
不幸的是,使用Servlet API没有标准/抽象方法来挂钩它.您需要编写特定于应用程序服务器的逻辑或实现HttpServletRequest#getUserPrincipal()
每次都检查的全局过滤器.例如:
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {
HttpServletRequest request = (HttpServletRequest) req;
Principal user = request.getUserPrincipal();
HttpSession session = request.getSession(false);
if (user != null && (session == null || session.getAttribute("user") == null)) {
request.getSession().setAttribute("user", user);
// First-time login. You can do your intercepting thing here.
}
chain.doFilter(req, res);
}
Run Code Online (Sandbox Code Playgroud)