springboot +vue实现token登录3之获取登录人员信息

编程入门 行业动态 更新时间:2024-10-09 19:23:18

springboot +vue实现token登录3之获取登录<a href=https://www.elefans.com/category/jswz/34/1768716.html style=人员信息"/>

springboot +vue实现token登录3之获取登录人员信息

1.通过自定义 @CurrentUser 获取当前登录用户

1、定义 @CurrenUser注解

package com.presoft.wydlmon.config;import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.RetentionPolicy;import java.lang.annotation.ElementType;
@Target(ElementType.PARAMETER)          // 可用在方法的参数上
@Retention(RetentionPolicy.RUNTIME)     // 运行时有效
public @interface CurrentUser {}

2、添加参数解析器 (使得上面的注解有效)(HandlerMethodArgumentResolver  springboot自定义解析器)

package com.presoft.wydlmon.config;import org.springframework.context.annotation.Configuration;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.springframework.web.multipart.support.MissingServletRequestPartException;import com.presoft.wydl.packs.system.model.UserInfo;@Configuration
public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {@Overridepublic boolean supportsParameter(MethodParameter parameter) {return parameter.getParameterType().isAssignableFrom(UserInfo.class)&& parameter.hasParameterAnnotation(CurrentUser.class);}@Overridepublic Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {//取出第二节中放入请求中的用户信息
//AuthenticationInterceptor 最后  //将验证通过后的用户信息放到请求中//httpServletRequest.setAttribute("currentUser", user);UserInfo user = (UserInfo)webRequest.getAttribute("currentUser", RequestAttributes.SCOPE_REQUEST);if (user != null) {return user;}throw new MissingServletRequestPartException("currentUser");}}

3、配置参数解析器

在 WebMvcConfigurer.java 中 Override addArgumentResolvers 方法

//@Configuration
public class InterceptorConfig extends   WebMvcConfigurationSupport {@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {super.addArgumentResolvers(argumentResolvers);argumentResolvers.add(new CurrentUserMethodArgumentResolver());}
}

 4.例子

    @UserLoginToken  //一定要有,不然没法设置@CurrentUser@RequestMapping(value = "/list",method = RequestMethod.POST)public Response list(EnterpriseVo vo,@CurrentUser UserInfo user) {return enterpriseService.selectByParams(vo);}

 

更多推荐

springboot +vue实现token登录3之获取登录人员信息

本文发布于:2024-02-27 23:41:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1766983.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:人员   信息   springboot   vue   token

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!