我正在开发一个Spring应用程序,并在HandlerInterceptorAdapter的预处理()方法中对用户进行身份验证,如果用户进行了身份验证,我将如下设置请求属性:
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
request.setAttribute("isAuthenticated",true);
request.setAttribute("user",user);
}
如果用户未通过身份验证,我是这样设置的
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
request.setAttribute("isAuthenticated",false);
request.setAttribute("user",null);
}
然后在稍后的控制器方法中,我用HttpServletRequest检索用户,如下所示:
@GetMapping(value = "/user", produces = "application/json")
public Object getUserByToken(HttpServletRequest request) {
if((Boolean) request.getAttribute("isAuthenticated")) {
return request.getAttribute("user");
}
return ResponseEntity.status(UNAUTHORIZED).body("unauthorized");
}
问题是我需要在每个控制器方法中接收HttpServletRequest,以检查用户是否经过身份验证。
我想要的是在控制器方法之前和控制器类内部调用的方法,以便我可以在一个位置设置用户,并从所有其他控制器方法中获取
这样编写基本控制器:
public class BaseController {
@ModelAttribute("user")
public User getUser(HttpServletRequest request) {
return (User)request.getAttribute("user");
}
}
从基本控制器扩展所有控制器。
@RequestMapping(value = "/user", produces = "application/json")
public Object getUserByToken(@ModelAttribute("user") User user) {
// play with user object
}
我已经向您展示了用户的示例,同样用于身份验证标志。
本文向大家介绍iOS如何获取当前View所在控制器的方法,包括了iOS如何获取当前View所在控制器的方法的使用技巧和注意事项,需要的朋友参考一下 前言 不知道大家有没有遇到过在做轮播图的时候,有点轮播图展示的是广告,有的是活动,等等还有其他的,当前点击某个轮播的时候要跳转到不同的控制器,点击事件是在控制器写的,为了避免控制器代码过多,显示的臃肿。我创建了一个UIWindow的分类,暂且叫Mode
如果运行在负载均衡器之后,最好应该理解头。因此,在本例中,我想让类似于。如果需要的话,我将使用Netty服务器实现。
在spring boot中@RequestBody内容到达控制器之前,我如何覆盖它? > 此外,我还搜索了Request estBodyAdviceAdapter。 有几个链接对spring boot不起作用。 如何多次读取request.getInputStream() 如何在Spring引导到达控制器之前修改请求正文 现在,我可以将输入流读入字符串中,进行一些修改并设置回控制器的输入流吗?
我正在使用Spring MVC 4.1为restful Web服务添加速率限制。 我创建了一个注释,可以应用于控制器方法。Spring AOP方面会拦截对这些方法的调用,并在请求过多时引发异常: 这一切都非常有效,除非控制器方法的参数标记为,例如: 问题:如果验证失败,验证器会抛出由@ExceptionHandler处理的,它会向客户端返回错误响应,永远不会触发我的,因此绕过速率限制。 如何以优先
问题内容: 我有一个externalItems列表。在每个externalItem内,我都有一个innerItems列表。它们是动态排序的。 当鼠标光标指向innerItems之一时,我必须在该innerItem元素上方显示弹出窗口。 Popup div是body的孩子,因为我不想为innerItems的每个单独创建一个弹出窗口。 我所看到的方式—在我调用的函数中,将左/上属性设置为绝对定位的弹出
问题内容: 为什么无法从另一个内部访问其他控制器方法呢? 像这样。 已编译 如果您不能这样做,那为什么不呢?我还应该怎么做… 问题答案: 最近几个小时遇到相同的问题。我使用了api / services文件夹。它可能不完全是您所需要的,但是它是一个选择。