作者 朱兆平

add:

新增用户与更新用户接口的密码已改为SM3加密方式
package com.tianbo.warehouse.annotation;
import java.lang.annotation.*;
/**
* 将前端注册、新增、编辑后提交的明文密码MD5加密
* 使用该注解不用再MD5转换了
*
* @author adonis
*
*/
@Target({ElementType.PARAMETER,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface UserPasswordSM3 {
String value() default "password";
}
... ...
package com.tianbo.warehouse.annotation;
import com.tianbo.warehouse.model.USERS;
import com.tianbo.warehouse.security.login.SM3EncryptUtil;
import org.apache.commons.lang.StringUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
@Aspect
@Component
public class UserPasswordSM3AOP {
@Pointcut("@annotation(com.tianbo.warehouse.annotation.UserPasswordMd5)")
public void annotationPointCut(){
}
@Before("annotationPointCut()")
public void before(JoinPoint joinPoint){
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method= signature.getMethod();
UserPasswordSM3 annotation = method.getAnnotation(UserPasswordSM3.class);
System.out.print("打印:"+annotation.value()+" SM3加密开始前");
}
@Around("annotationPointCut()")
public Object advice(ProceedingJoinPoint joinPoint){
System.out.println("SM3加密执行中");
Object[] args = joinPoint.getArgs();
if (args != null && args.length > 0 && args[0].getClass() == USERS.class) {
USERS user = (USERS)args[0];
if (StringUtils.isNotEmpty(user.getPassword())){
user.setPassword(SM3EncryptUtil.passwordSm3(user.getPassword()));
args[0] = user;
}
}
Object retmsg=null;
try {
retmsg=joinPoint.proceed(args);
System.err.println("++++++++"+retmsg);
} catch (Throwable e) {
e.printStackTrace();
}
System.out.println("SM3加密执行结束");
return retmsg;
}
@After("annotationPointCut()")
public void after(){
System.out.println("after方法SM3加密执行后");
}
}
... ...
... ... @@ -2,6 +2,7 @@ package com.tianbo.warehouse.controller;
import com.tianbo.warehouse.annotation.LogAnnotation;
import com.tianbo.warehouse.annotation.UserPasswordMd5;
import com.tianbo.warehouse.annotation.UserPasswordSM3;
import com.tianbo.warehouse.controller.response.ResultJson;
import com.tianbo.warehouse.model.USERS;
import com.tianbo.warehouse.service.UserService;
... ... @@ -31,7 +32,7 @@ public class AdminController {
@ApiOperation(value = "修改用户密码", notes = "超级管理修改其他用户密码")
@LogAnnotation(moduleName = "admin管理",operate = "用户密码修改")
@ApiImplicitParams({@ApiImplicitParam(name = "USERS", value = "用户账号密码", required = true, dataType = "USERS")})
@UserPasswordMd5
@UserPasswordSM3
@PutMapping("/password")
public ResultJson updateUserPassById(@RequestBody USERS user){
int i = userService.updateByPrimaryKeySelective(user);
... ...
... ... @@ -4,12 +4,11 @@ import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.tianbo.warehouse.annotation.LogAnnotation;
import com.tianbo.warehouse.annotation.RequestRequire;
import com.tianbo.warehouse.annotation.UserPasswordMd5;
import com.tianbo.warehouse.annotation.UserPasswordSM3;
import com.tianbo.warehouse.controller.response.ResultJson;
import com.tianbo.warehouse.model.USERS;
import com.tianbo.warehouse.model.UserRole;
import com.tianbo.warehouse.security.CustomUserDetailService;
import com.tianbo.warehouse.security.filter.JwtTokenUtil;
import com.tianbo.warehouse.service.UserService;
import com.tianbo.warehouse.service.validated.InsertUser;
import com.tianbo.warehouse.service.validated.UpdateUser;
... ... @@ -28,7 +27,6 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
... ... @@ -71,7 +69,7 @@ public class UserController {
UserDetails userDetails =(UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
return userDetails.getUsername();
}
@ApiOperation(value = "更新用户信息", notes = "新用户信息除了用户密码")
@ApiOperation(value = "更新用户信息", notes = "新用户信息除了用户密码")
@LogAnnotation(moduleName = "用户管理",operate = "用户编辑")
@PutMapping("/edit")
public ResultJson updateUserById(@Validated(UpdateUser.class) @RequestBody USERS user){
... ... @@ -83,14 +81,14 @@ public class UserController {
}
@LogAnnotation(moduleName = "用户管理",operate = "用户密码修改")
@UserPasswordMd5
@UserPasswordSM3
@PutMapping("/password")
public ResultJson updateUserPassById(@RequestBody USERS user){
int i = userService.updateByPrimaryKeySelective(user);
return i==1 ? new ResultJson("200","success") :new ResultJson("500","update faild");
}
@UserPasswordMd5
@UserPasswordSM3
@LogAnnotation(moduleName = "用户管理",operate = "用户添加")
@PostMapping("/add")
public ResultJson addUser(@RequestBody @Validated(InsertUser.class) USERS user, HttpServletRequest request, HttpServletResponse response, BindingResult bindingResult){
... ...