我有一个完全在春季编写的RESTful程序。我使用了spring security来控制REST调用,并且扩展了AccessDeniedHandlerImpl
来审计未经授权的访问。现在我也想审核来自未经身份验证的用户的请求并记录他们的IP地址(我们唯一拥有的,因为他们的用户名是匿名的)。我尝试使用AuthenticationEntryPoint
,但它不起作用,并阻止重定向到登录页面(审核部分作品,但我无法访问我的登录页面并像以前一样使用我的程序)。审核对REST API的未经身份验证的访问
实现此行为的正确方法是什么?我是否需要实现表单登录并将审计放入其中?他们是一个简单的监听器或类似的东西,用于在我的代码中添加日志并向用户显示登录页面?
这是我试过的审核未认证的访问代码:
@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);
我的问题不在于获取IP地址。请仔细阅读。 – AKJ88
它无法访问登录页面吗?如果是,请“仔细阅读”我的答案的第二部分:“现在,如果用户未通过身份验证,则应将重定向发送到登录页面,而不是发生错误” – Boschi
请在此处完整发布您的答案,而不是发布一条链接。 – AKJ88