You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.7 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//package com.bsd.cases.shiro;
//
//import com.bsd.cases.model.BoUsers;
//import com.bsd.cases.service.BoUsersService;
//import com.bsd.cases.util.JWTUtil;
//import org.apache.shiro.authc.AuthenticationException;
//import org.apache.shiro.authc.AuthenticationInfo;
//import org.apache.shiro.authc.AuthenticationToken;
//import org.apache.shiro.authc.SimpleAuthenticationInfo;
//import org.apache.shiro.authz.AuthorizationInfo;
//import org.apache.shiro.authz.SimpleAuthorizationInfo;
//import org.apache.shiro.realm.AuthorizingRealm;
//import org.apache.shiro.subject.PrincipalCollection;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//
//@Component
//public class CommonRealm extends AuthorizingRealm {
//
// @Resource
// private BoUsersService boUsersService;
//
// /**
// * 大坑必须重写此方法不然Shiro会报错
// */
// @Override
// public boolean supports(AuthenticationToken token) {
// return token instanceof JWTToken;
// }
//
// /**
// * 只有当需要检测用户权限的时候才会调用此方法例如checkRole,checkPermission之类的
// */
// @Override
// protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
//
// String key = JWTUtil.getKey(principals.toString());
// BoUsers boUsers = boUsersService.selectByUserNoOrOpenId(key);
// SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
//// simpleAuthorizationInfo.addRole(user.getRole().toString());
//// Set<String> permission = new HashSet<>(Arrays.asList(user.getPermission().split(",")));
// // simpleAuthorizationInfo.addStringPermissions(permission);
// return simpleAuthorizationInfo;
// }
//
// /**
// * 默认使用此方法进行用户名正确与否验证,错误抛出异常即可。
// */
// @Override
// protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken auth) throws AuthenticationException {
//
// String token = (String) auth.getCredentials();
// // 解密获得username用于和数据库进行对比
// String key = JWTUtil.getKey(token);
// if (key == null) {
// throw new AuthenticationException("token invalid");
// }
//
// BoUsers boUsers = boUsersService.selectByUserNoOrOpenId(key);
// if (boUsers == null) {
// throw new AuthenticationException("User didn't existed!");
// }
// if (!JWTUtil.verify(token, key)) {
// throw new AuthenticationException("Username or password error");
// }
// return new SimpleAuthenticationInfo(token, token, "common_ream");
// }
//}