Java 审核对REST API的未经验证的访问

Java 审核对REST API的未经验证的访问,java,rest,spring-security,Java,Rest,Spring Security,我有一个完全在春天编写的RESTful程序。我使用了spring安全性来控制REST调用,并扩展了AccessDeniedHandlerImpl来审计未经授权的访问。现在我还想审核来自未经身份验证的用户的请求,并记录他们的ip地址(这是我们唯一拥有的,因为他们的用户名是匿名的)。我尝试使用AuthenticationEntryPoint,但它不起作用,并阻止重定向到登录页面(审计部分起作用,但我无法像以前那样访问登录页面和使用我的程序) 实施此行为的正确方法是什么?我需要实现表单登录并在其中进行

我有一个完全在春天编写的RESTful程序。我使用了spring安全性来控制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());
    }
}
我还在WebSecurity配置中注册了此实现:

http
 .exceptionHandling().authenticationEntryPoint(myAuthEntry);
要获取IP地址(至少是用户来自的最后一个代理的IP地址),请使用:

现在,如果用户未通过身份验证,则应该向登录页面发送重定向,而不是错误。
请参阅:

我的问题不是获取ip地址。请仔细阅读。是否无法访问登录页面?如果是,“请仔细阅读”我回答的第二部分:“现在,如果用户未经身份验证,您应该向登录页面发送重定向,而不是错误”请将您的答案完整地发布在这里,而不是发布链接。您为登录页面分配的URL模式是什么?还是一个过滤器?没有这些信息,我不能给你一个代码样本,除了
resp.sendRedirect(“/your/login/page”)
req.getRemoteAddr()