Java tutorial
/* * Project: springmvchibernate * * File Created at 20161121 * * Copyright 2016 CMCC Corporation Limited. * All rights reserved. * * This software is the confidential and proprietary information of * ZYHY Company. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license. */ package com.curiousby.baoyou.cn.shiro; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; 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.authc.UsernamePasswordToken; 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.beans.factory.InitializingBean; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.curiousby.baoyou.cn.entity.Right; import com.curiousby.baoyou.cn.entity.Role; import com.curiousby.baoyou.cn.entity.User; import com.curiousby.baoyou.cn.service.RightService; import com.curiousby.baoyou.cn.service.RoleService; import com.curiousby.baoyou.cn.service.UserService; /** * @com.curiousby.baoyou.cn.shiro.SysRealm * @Type SysRealm.java * @Desc * @author cmcc-B100036 * @date 20161121 ?5:35:02 * @version */ @Service public class SysRealm extends AuthorizingRealm implements InitializingBean { public static Map<String, Right> map = new HashMap<String, Right>(); @Resource UserService userService; @Resource RightService rightService; @Resource RoleService roleService; @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String userName = (String) super.getAvailablePrincipal(principals); List<String> roleList = new ArrayList<String>(); List<String> permissionList = new ArrayList<String>(); //???? User user = userService.find("userName", userName); if (null != user) { //User?? if (null != user.getRoles() && user.getRoles().size() > 0) { //?? for (Role role : user.getRoles()) { roleList.add(role.getRoleName()); //Role???? if (null != role.getRights() && role.getRights().size() > 0) { //??? for (Right right : role.getRights()) { if (!StringUtils.isEmpty(right.getRightUrl())) { permissionList.add(right.getRightUrl()); } } } /*List<Right> rights= rightService.findByRoleId(role.getId()); if(null!=rights && rights.size()>0){ //??? for(Right right : role.getRights()){ if(!StringUtils.isEmpty(right.getRightUrl())){ permissionList.add(right.getRightUrl()); } } }*/ } } } else { } //??? SimpleAuthorizationInfo simpleAuthorInfo = new SimpleAuthorizationInfo(); simpleAuthorInfo.addRoles(roleList); simpleAuthorInfo.addStringPermissions(permissionList); return simpleAuthorInfo; } @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; User user = userService.find("userName", token.getUsername()); if (user != null) { return new SimpleAuthenticationInfo(user.getUserName(), user.getPassword(), user.getUserName()); } else { return null; } } @Override public void afterPropertiesSet() throws Exception { } } /** * Revision history * ------------------------------------------------------------------------- * * Date Author Note * ------------------------------------------------------------------------- * 20161121 cmcc-B100036 creat */