package top.maniy.demo.shiro.realm;
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.crypto.hash.Md5Hash;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import top.maniy.demo.entity.User;
import top.maniy.demo.mapper.UserMapper;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @author liuzonghua
* @Package top.maniy.test
* @Description:
* @date 2018/10/6 13:59
*/
public class CustomRealm extends AuthorizingRealm{
@Autowired
private UserMapper userMapper;
// Map<String,String> userMap =new HashMap<String, String>(16);
// {
// userMap.put("maniy","993121f227e2cef658c392549708d60c");
// super.setName("customRealm");
// }
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
String userName = (String) principalCollection.getPrimaryPrincipal();
Set<String> roles =getRolesByUserName(userName);
Set<String> permissions = getPermissionByUserName(userName);
SimpleAuthorizationInfo simpleAuthorizationInfo =new SimpleAuthorizationInfo();
simpleAuthorizationInfo.setStringPermissions(permissions);
simpleAuthorizationInfo.setRoles(roles);
return simpleAuthorizationInfo;
}
private Set<String> getPermissionByUserName(String userName) {
List<String> listR =userMapper.queryRolesByUserName(userName);
List<String>listP=new ArrayList<String>();
for(String str:listR){
listP.addAll(userMapper.queryPermissionByUserName(str));
}
Set<String> sets =new HashSet<String>(listP);
// Set<String> sets =new HashSet<String>();
// sets.add("user:delete");
// sets.add("user:add");
return sets;
}
private Set<String> getRolesByUserName(String userName) {
System.out.println("从数据库中获取授权数据");
List<String> list =userMapper.queryRolesByUserName(userName);
Set<String> sets=new HashSet<String>(list);
// Set<String> sets =new HashSet<String>();
// sets.add("admin");
// sets.add("user");
return sets;
}
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken)
throws AuthenticationException {
//1.从主体传过来额认证信息中,获得用户名
String userName = (String) authenticationToken.getPrincipal();
//2.通过用户名到数据库中获取凭证
String password = getPasswordByUserName(userName);
if(password == null){
return null;
}
SimpleAuthenticationInfo simpleAuthenticationInfo =new SimpleAuthenticationInfo
(userName,password,"customRealm");
//shiro需要知道用了什么盐,在去解析密码
simpleAuthenticationInfo.setCredentialsSalt(ByteSource.Util.bytes(userName));
return simpleAuthenticationInfo;
}
/**
* 模拟数据库查询认证
* @param username
* @return
*/
private String getPasswordByUserName(String username){
//
User user =userMapper.getUserByUserName(username);
if(user!=null){
System.out.println(user.getPassword());
return user.getPassword();
}else {
return null;
}
//return userMap.get(username);
}
public static void main(String[] args) {
//单一的是密码加密容易破解,这时候就需要 加盐
Md5Hash md5Hash= new Md5Hash("1234567","Mark");
System.out.println(md5Hash.toString());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
ssm整合shrio框架
共141个文件
xml:68个
jar:39个
class:16个
需积分: 9 16 下载量 188 浏览量
2018-10-11
13:25:46
上传
评论
收藏 19.41MB ZIP 举报
温馨提示
ssm整合shiro通过自定义Realm实现认证登录、权限处理、自定义role拦截、MD5加密
资源推荐
资源详情
资源评论
收起资源包目录
ssm整合shrio框架 (141个子文件)
CustomRealm.class 4KB
CustomRealm.class 4KB
UserController.class 3KB
UserController.class 3KB
User.class 1KB
User.class 1KB
RolesOrFilter.class 1KB
RolesOrFilter.class 1KB
UserMapperTest.class 1KB
UserMapperTest.class 1KB
UserServiceImpl.class 451B
UserServiceImpl.class 451B
UserMapper.class 395B
UserMapper.class 395B
UserService.class 126B
UserService.class 126B
login.html 377B
login.html 377B
index.html 150B
index.html 150B
shiro-ssm.iml 6KB
tools.jar 17.4MB
aspectjweaver-1.8.4.jar 1.78MB
druid-1.0.9.jar 1.76MB
jackson-databind-2.4.2.jar 1.03MB
spring-context-4.1.3.RELEASE.jar 1003KB
spring-core-4.1.3.RELEASE.jar 983KB
mysql-connector-java-5.1.32.jar 946KB
spring-webmvc-4.1.3.RELEASE.jar 763KB
mybatis-3.2.8.jar 697KB
spring-web-4.1.3.RELEASE.jar 697KB
spring-beans-4.1.3.RELEASE.jar 691KB
spring-test-4.1.3.RELEASE.jar 491KB
log4j-1.2.16.jar 470KB
spring-jdbc-4.1.3.RELEASE.jar 417KB
jstl-1.2.jar 405KB
commons-lang3-3.3.2.jar 403KB
jconsole.jar 398KB
shiro-core-1.2.3.jar 359KB
spring-aop-4.1.3.RELEASE.jar 351KB
spring-messaging-4.1.3.RELEASE.jar 281KB
commons-net-3.3.jar 274KB
spring-jms-4.1.3.RELEASE.jar 263KB
spring-expression-4.1.3.RELEASE.jar 253KB
spring-tx-4.1.3.RELEASE.jar 246KB
commons-beanutils-1.8.3.jar 227KB
jackson-core-2.4.2.jar 220KB
spring-context-support-4.1.3.RELEASE.jar 174KB
shiro-web-1.2.3.jar 139KB
commons-io-1.3.2.jar 86KB
commons-logging-1.2.jar 60KB
spring-aspects-4.1.3.RELEASE.jar 55KB
mybatis-spring-1.2.2.jar 48KB
mybatis-paginator-1.2.15.jar 45KB
jackson-annotations-2.4.0.jar 38KB
pagehelper-3.4.1.jar 30KB
slf4j-api-1.7.2.jar 25KB
shiro-spring-1.2.3.jar 24KB
slf4j-log4j12-1.6.4.jar 10KB
aopalliance-1.0.jar 4KB
CustomRealm.java 4KB
UserController.java 3KB
User.java 1011B
RolesOrFilter.java 950B
UserMapperTest.java 822B
UserMapper.java 520B
UserServiceImpl.java 321B
UserService.java 184B
MANIFEST.MF 91B
jdbc.properties 143B
jdbc.properties 143B
jdbc.properties 143B
shiro.sql 3KB
workspace.xml 51KB
pom.xml 7KB
junitgenerator-prj-settings.xml 6KB
shiro_ssm_war_exploded.xml 5KB
spring-dao.xml 3KB
spring-dao.xml 3KB
spring-dao.xml 3KB
spring-shiro.xml 2KB
web.xml 2KB
web.xml 2KB
spring-shiro.xml 2KB
spring-shiro.xml 2KB
springmvc.xml 2KB
springmvc.xml 2KB
springmvc.xml 2KB
spring-service.xml 1KB
spring-service.xml 1KB
spring-service.xml 1KB
Maven__org_springframework_spring_context_support_4_1_3_RELEASE.xml 693B
Maven__org_springframework_spring_expression_4_1_3_RELEASE.xml 658B
Maven__org_springframework_spring_messaging_4_1_3_RELEASE.xml 651B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_4_0.xml 644B
Maven__org_springframework_spring_aspects_4_1_3_RELEASE.xml 637B
Maven__org_springframework_spring_context_4_1_3_RELEASE.xml 637B
Maven__org_springframework_spring_webmvc_4_1_3_RELEASE.xml 630B
compiler.xml 630B
Maven__org_springframework_spring_beans_4_1_3_RELEASE.xml 623B
共 141 条
- 1
- 2
资源评论
IManiy
- 粉丝: 57
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功