【发布时间】:2017-07-20 13:59:11
【问题描述】:
我有一个完全在 spring 中编写的 RESTful 程序。我使用 spring security 来控制 REST 调用并扩展 AccessDeniedHandlerImpl 来审核未经授权的访问。现在我还想审核来自未经身份验证的用户的请求并记录他们的 IP 地址(我们唯一拥有的东西,因为他们的用户名是匿名的)。我尝试使用AuthenticationEntryPoint,但它不起作用并阻止重定向到登录页面(审核部分有效,但我无法访问我的登录页面并像以前一样使用我的程序)。
实现此行为的正确方法是什么?我是否需要实现表单登录并在其中进行审核?他们是一个简单的监听器还是类似的东西,用于在我的代码中添加日志记录并向用户显示登录页面?
这是我尝试审核未经身份验证的访问的代码:
@Component
public class MyAuthEntry implements AuthenticationEntryPoint{
@Override
public void commence(HttpServletRequest req, HttpServletResponse resp, AuthenticationException e) throws IOException, ServletException {
//log user ip and uri they tried accessing
resp.sendError(401, e.getMessage());
}
}
我也在 WebSecurityConfig 中注册了这个实现:
http
.exceptionHandling().authenticationEntryPoint(myAuthEntry);
【问题讨论】:
标签: java rest spring-security