Java 在Spring安全之前使用Spring移动设备检测

Java 在Spring安全之前使用Spring移动设备检测,java,spring-boot,spring-mvc,spring-mobile,Java,Spring Boot,Spring Mvc,Spring Mobile,我想在用户登录后将他们重定向到不同的页面,这取决于他们是什么类型的用户,以及他们是否在移动设备上。我的项目使用SpringMVC和SpringSecurity。为了使重定向逻辑正常工作,我使用Spring Security AuthenticationSuccessHandler来识别用户登录后的类型,并将其引导到正确的页面 我希望在这一点上使用SpringMobile来检查他们是否在移动设备上,如果是的话,将他们发送到移动版本的URL。然而,像DeviceResolverHandlerInte

我想在用户登录后将他们重定向到不同的页面,这取决于他们是什么类型的用户,以及他们是否在移动设备上。我的项目使用SpringMVC和SpringSecurity。为了使重定向逻辑正常工作,我使用Spring Security AuthenticationSuccessHandler来识别用户登录后的类型,并将其引导到正确的页面

我希望在这一点上使用SpringMobile来检查他们是否在移动设备上,如果是的话,将他们发送到移动版本的URL。然而,像DeviceResolverHandlerInterceptor这样的拦截器似乎是在Spring安全过滤器之后执行的,因此在我需要它的时候,解析还没有发生

目前,我能看到的唯一解决方案是禁用拦截器,而是直接使用LiteDeviceSolver的resolveDevice()方法。这感觉有点不舒服,但我看不到另一个明显的选择

有没有更好的方法来配置这些人知道的

@配置
公共类WebConfig实现WebMVCConfiguer{
@豆子
公共设备SolverHandlerInterceptor设备SolverHandlerInterceptor(){
返回新的DeviceSolverHandlerInterceptor();
}
@凌驾
公共无效附加接收器(侦听器注册表){
registry.addInterceptor(deviceResolverHandlerInterceptor()).order(有序的、最高优先级的);
}
}
@凌驾
AuthenticationSuccess(HttpServletRequest请求、HttpServletResponse响应、,
身份验证)引发IOException、ServletException{
布尔值isMobile=DeviceUtils.getCurrentDevice(请求)!=null
&&getCurrentDevice(请求).isMobile();
...