1.项目补充点
(1)thymeleaf
渲染模板
https://www.cnblogs.com/msi-chen/p/10974009.html
(2)两次MD5加密
使用shiro的MD5工具。
为什么使用 MD5 盐值加密?希望即使两个原始密码相同,加密得到的两个字符串也不同。
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
//使用md5生成加密后的密码
//固定的salt
private static final String SALT = "1qazxsw2";
//算法名称 md5
private static final String ALGORITH_NAME = "md5";
//两次加密
private static final int HASH_ITERATIONS = 2;
public static String encrypt(String username, String pswd) {
String newPassword = new SimpleHash(ALGORITH_NAME, pswd, ByteSource.Util.bytes(username + SALT), HASH_ITERATIONS).toHex();
return newPassword;
}
使用 ByteSource.Util.bytes() 来计算盐值.
使用 new SimpleHash(hashAlgorithmName, credentials, salt, hashIterations); 来计算盐值加密后的密码的值.
(3)shiro权限管理
(4)JSR303参数校验
1.引入依赖 spring-boot-starter-validation
2.方法参数的地方加上 @Valid
3.在需要校验的Model上面,每个字段上加上 @NotNull(不能为空) @Length(min=10)(长度最小为10)
(5)全局异常处理器
@ControllerAdvice
@ResponseBody
public class GlobleExceptionHandler {