java获取authorization_Java SimpleAuthorizationInfo.addRole方法代码示例

本文整理汇总了Java中org.apache.shiro.authz.SimpleAuthorizationInfo.addRole方法的典型用法代码示例。如果您正苦于以下问题:Java SimpleAuthorizationInfo.addRole方法的具体用法?Java SimpleAuthorizationInfo.addRole怎么用?Java SimpleAuthorizationInfo.addRole使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.shiro.authz.SimpleAuthorizationInfo的用法示例。

在下文中一共展示了SimpleAuthorizationInfo.addRole方法的38个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

String userName = (String) principals.fromRealm(getName()).iterator()

.next();

List roleInfos = securityService.getRoleInfo(userName);

List permissionInfos = null;

if (null == roleInfos || 0 == roleInfos.size()) {

return null;

} else {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (WizardRoleInfo roleInfo : roleInfos) {

info.addRole(roleInfo.getRoleName());

permissionInfos = securityService.getPermissionInfo(roleInfo

.getRoleName());

for (WizardOrgInfo permissionInfo : permissionInfos) {

info.addStringPermission(permissionInfo.getOrgName());

}

}

return info;

}

}

开发者ID:joaquinaimar,项目名称:wizard,代码行数:24,

示例2: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 获取当前用户的角色集合,权限集合

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();

//获取保存在session中的用户信息

SysUser user = (SysUser) SecurityUtils.getSubject().getSession().getAttribute(SysUser.SYS_USER);

if (user == null) {

throw new IllegalArgumentException();

}

//获取当前用户拥有的所有角色

List roles = roleService.getSysRoleByUserId(user.getUserId().toString(), PublicEnum.NORMAL.value());

for (SysRole sysRole : roles) {

authorizationInfo.addRole(sysRole.getRoleCode());

}

//获取当前用户拥有的所有权限

List permissions = permissionService.getSysPermissionByUserId(user.getUserId(), PublicEnum.NORMAL.value());

for (SysPermission sysPermission : permissions) {

authorizationInfo.addStringPermission(sysPermission.getPermission());

}

System.out.println("用户权限:"+ JSON.toJSONString(authorizationInfo));

return authorizationInfo;

}

开发者ID:babymm,项目名称:mumu,代码行数:25,

示例3: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

final String username = getUsername(principals);

List roles = usersRepository.findRolesByUsername(username);

LOG.debug("Load Roles[{}] by username: {}", roles, username);

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (Roles role : roles) {

info.addRole(role.roleName());

for (RolesPermissions permissions : role.permissions()) {

info.addStringPermission(permissions.permission());

}

}

return info;

}

开发者ID:monkeyk,项目名称:oauth2-shiro-redis,代码行数:20,

示例4: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

//@org.springframework.transaction.annotation.Transactional

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {

//获取当前用户

//UserDto user = convertToDto(userDao.findUserByUsername((String)principalCollection.getPrimaryPrincipal()));

//User currentUser = userDao.findUserByUsername((String)principalCollection.getPrimaryPrincipal());

UserDto user = (UserDto) SecurityUtils.getSubject().getSession().getAttribute("user");

//把principals放session中,key=userId value=principals

SecurityUtils.getSubject().getSession().setAttribute(String.valueOf(user.getId()),SecurityUtils.getSubject().getPrincipals());

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

//赋予角色

for(RoleDto role:user.getRoles()){

info.addRole(role.getName());

}

//赋予权限

for(PermissionDto permission:user.getPermissions()){

//System.out.println(permission.getName());

info.addStringPermission(permission.getName());

}

return info;

}

开发者ID:ZhuXS,项目名称:Spring-Shiro-Spark,代码行数:24,

示例5: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

//XXX 在这里获取到用户,并获取到相关角色和权限,在这里定义一个基础用户

SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();

String username = String.valueOf(principals.getPrimaryPrincipal());//取查询获取用户名

//获取当前用户

//final IUserModel user =mscUsersPersonService.findByUserName(username);// userService.selectByUsername(username);

//权限列表

final List roleInfoList =CurrentUserUtil.getPermissionList();//mscAuthRoleService.findByUser(user.getUserId());

if(roleInfoList!=null && !roleInfoList.isEmpty()){

for (IRoleDomain role : roleInfoList) {

// 添加权限角色

String authRole= AuthConstant.getRole(role.getType());

authorizationInfo.addRole(authRole);

authorizationInfo.addStringPermission(authRole);//将拥有的角色权限直接添加到权限中

final List mscAuthInfoList =role.getAuthList();// permissionService.selectPermissionsByRoleId(role.getId());

for (IAuthDomain authInfo : mscAuthInfoList) {

// 添加权限

authorizationInfo.addStringPermission(authInfo.getAuthKey());//(permission.getPermissionSign());

}

}

}

return authorizationInfo;

}

开发者ID:haizicq,项目名称:osframe,代码行数:27,

示例6: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

Principal principal = (Principal) getAvailablePrincipal(principals);

if (principal.getName() != null) {

UserService userService = BGDispatch.userService;

Collection myRoles = userService.getRoles(principal.getName(),principal.getPassword());

if (myRoles != null) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (Role each : myRoles) {

info.addRole(each.getStr(Role.NAME));

Set pers = new HashSet();

for (Permission permission : each.getPermissions()) {

if(StringUtils.isNotBlank(permission.getStr("permission"))){

pers.add(permission.getStr("permission"));

}

}

info.addStringPermissions(pers);

}

return info;

}

}

return null;

}

开发者ID:yaokwok,项目名称:loveabc,代码行数:25,

示例7: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

Principal principal = (Principal) getAvailablePrincipal(principals);

User user = getSystemService().getUserByLoginName(principal.getLoginName());

if (user != null) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

info.addStringPermission("sys:test:add");

info.addStringPermission("sys:test:edit");

// 添加用户权限

info.addStringPermission("user");

info.addRole("role1");

info.addRole("role2");

return info;

} else {

return null;

}

}

开发者ID:whatlookingfor,项目名称:spring-boot-sample,代码行数:23,

示例8: getSimpleAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

private SimpleAuthorizationInfo getSimpleAuthorizationInfo(String username) throws Exception {

Map params = new HashMap();

params.put("account", username);

List roleList = userRoleService.findListByParams(params);

if (roleList==null) {

return null;

}

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (TbUserRole userRole : roleList) {

info.addRole(userRole.getRole());

params.clear();

params.put("role", userRole.getRole());

List rolePermissionList = rolePermissionService.findListByParams(params);

if (rolePermissionList==null) {

continue;

}

for (TbRolePermission rolePermission : rolePermissionList) {

info.addStringPermission(rolePermission.getPermission());

}

}

return info;

}

开发者ID:billchen198318,项目名称:bamboobsc,代码行数:23,

示例9: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

// make sure the user is jcool, (its just for testing)

if (principals.asList().get(0).toString().equals("jcool")) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

info.addRole("test-role1");

info.addRole("test-role2");

info.addStringPermission("test:*");

return info;

}

return null;

}

开发者ID:sonatype,项目名称:nexus-public,代码行数:18,

示例10: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal();

UserRole role = shiroUser.role;

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

info.addRole(UserRole.用户.getRole());

if(UserRole.开发者.equals(role)){

info.addRole(UserRole.开发者.getRole());

}

if(UserRole.管理员.equals(role)){

info.addRole(UserRole.开发者.getRole());

info.addRole(UserRole.管理员.getRole());

}

return info;

}

开发者ID:wu560130911,项目名称:MultimediaDesktop,代码行数:23,

示例11: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* AuthorizationInfo(Subject's roles and permissions)

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {

String username = (String) principalCollection.fromRealm(getName()).iterator().next();

User loginUser = userService.findByUsername(username);

if (loginUser != null) {

SimpleAuthorizationInfo authInfo = new SimpleAuthorizationInfo();

for (Role role : loginUser.getRoles()) {

String roleName = String.valueOf(role.getId());

authInfo.addRole(roleName);

authInfo.addStringPermissions(role.getStringPermissions());

}

return authInfo;

}

return null;

}

开发者ID:guhao,项目名称:zo-spring-boot,代码行数:19,

示例12: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

// null usernames are invalid

if (principals == null) {

throw new AuthorizationException("PrincipalCollection method argument cannot be null.");

}

Integer userId = (Integer) getAvailablePrincipal(principals);

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

Set roles = userRepository.getRoles(userId);

for (Role role : roles) {

info.addRole(role.getName());

}

List permissions = userRepository.getPermissions(userId);

for (PostPermission permission : permissions) {

if (permission.getMask() > 0) {

info.addStringPermission(permission.getLiteral());

}

}

return info;

}

开发者ID:antoniomaria,项目名称:shiro-jpa,代码行数:23,

示例13: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

// Get the userId from the first principal in the collection

String userIdentifier = (String) getAvailablePrincipal(principals);

// Lookup user

Identity identity = identityService().findByUserId(userIdentifier);

assertUserFound(identity);

// Add roles to AuthorizationInfo

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

info.addRole(Role.USER.name());

if (identity.username().equalsIgnoreCase("admin")) {

info.addRole(Role.ADMIN.name());

}

//user.userRoles().all().stream().forEach((role) -> {

// info.addRole(role.name());

//});

return info;

}

开发者ID:dma-graveyard,项目名称:MaritimeCloudPortalTestbed,代码行数:23,

示例14: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(final PrincipalCollection principals) {

try {

String principal = (String) principals.getPrimaryPrincipal();

SimpleAuthorizationInfo sai = new SimpleAuthorizationInfo();

Set perms = getPerms(principal);

if (perms != null) {

for (String perm : perms) {

sai.addStringPermission(perm);

}

}

Set roles = getRoles(principal);

if (roles != null) {

for (String role : roles) {

sai.addRole(role);

}

}

return sai;

} catch (GwtUtilException e) {

log.warn("Exception getting authorization info: {}", e);

}

return null;

}

开发者ID:rkfg,项目名称:gwtutil,代码行数:24,

示例15: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/** {@inheritDoc} */

@Override

protected AuthorizationInfo doGetAuthorizationInfo(final PrincipalCollection principalCollection) {

final String username = (String) principalCollection.getPrimaryPrincipal();

// Find the thing that stores your user's roles.

final UserProfile userProfile = lookup(UserManagementService.class).findUserByLogin(username);

if (userProfile == null) {

logger.info("Principal not found for authorizing user with username: {}", username);

return null;

} else {

final UserRole role = userProfile.getRole();

logger.info("Authoriziong user {} with role: {}", username, role);

final SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();

authorizationInfo.addRole(role.getName());

grantPermissions(userProfile, authorizationInfo);

return authorizationInfo;

}

}

开发者ID:ExtaSoft,项目名称:extacrm,代码行数:21,

示例16: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

// null usernames are invalid

if (principals == null) {

throw new AuthorizationException("PrincipalCollection method argument cannot be null.");

}

User user = (User) getAvailablePrincipal(principals);

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

Set roles = userService.getRoles(user.getId());

for (Role role : roles) {

info.addRole(role.getName());

}

Set> permissions = userService.getPermissions(user.getId());

for (Permission> permission : permissions) {

info.addStringPermission(permission.getLiteral());

}

return info;

}

开发者ID:antoniomaria,项目名称:gazpachoquest,代码行数:21,

示例17: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

final User user = principals.byType(User.class).iterator().next();

final List roles = user.getRoles();

SimpleAuthorizationInfo sai = new SimpleAuthorizationInfo();

for (Role role : roles) {

sai.addRole(role.name());

}

if (roles.contains(Role.ADMIN)) {

sai.addObjectPermission(ALL_PERMISSION);

}

else {

sai.addObjectPermission(new ObjectPermission(principals.oneByType(User.class), objectPermissionChecker));

}

return sai;

}

开发者ID:thiagohp,项目名称:eloquentia,代码行数:22,

示例18: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

Authentication authentication = (Authentication) principals

.fromRealm(getName()).iterator().next();

Role[] roles = securityService.getRoles(authentication);

Permission[] permissionos = null;

if (!CommonUtil.isEmpty(roles)) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (Role role : roles) {

info.addRole(role.getName());

permissionos = securityService.getPermissions(role);

for (Permission permission : permissionos)

info.addStringPermission(permission.getName());

}

return info;

}

return null;

}

开发者ID:joaquinaimar,项目名称:wizard,代码行数:20,

示例19: doGetAuthorizationInfo

​点赞 3

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

String userName = (String) principals.fromRealm(getName()).iterator()

.next();

List roleInfos = securityService.getRoleInfo(userName);

List permissionInfos = new ArrayList();

System.err

.println("--------------------------------------------------");

if (null == roleInfos || 0 == roleInfos.size()) {

return null;

} else {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (String roleInfo : roleInfos) {

info.addRole(roleInfo);

permissionInfos = securityService.getPermissionInfo(roleInfo);

for (String permissionInfo : permissionInfos) {

info.addStringPermission(permissionInfo);

}

}

return info;

}

}

开发者ID:joaquinaimar,项目名称:wizard,代码行数:25,

示例20: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

UserSession session = SessionHelper.get();

if (session==null) {

return null;

}

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

info.addRole(String.valueOf(session.getRole()));

info.addStringPermissions(session.getPermission());

return info;

}

开发者ID:Eagle-OJ,项目名称:eagle-oj-api,代码行数:13,

示例21: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 用户授予权限

*

* @param principalCollection

* @return

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

String accountNumber = (String) principalCollection.getPrimaryPrincipal();

User user = userService.getUserByAccountNumber(accountNumber);

if (user != null) {// 给用户添加角色限制

info.addRole(user.getRole().toString());

} else {

SecurityUtils.getSubject().logout();

}

return info;

}

开发者ID:MarchMachao,项目名称:ZHFS-WEB,代码行数:19,

示例22: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

String userName = (String) principals.getPrimaryPrincipal();

User user = userService.findUserByName(userName);

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

Set roleSet = user.getRoles();

Set permissionSet = new HashSet();

for (Role role : roleSet) {

if(StringUtils.isNotBlank(role.getRoleName())){

info.addRole(role.getRoleName());

Set resources = role.getResources();

if(resources!=null && !resources.isEmpty()){

for(Resource r : resources){

if(StringUtils.isNotBlank(r.getUrl())){

permissionSet.add(r.getUrl());

}

}

}

}

}

info.addStringPermissions(permissionSet);

return info;

}

开发者ID:xujeff,项目名称:tianti,代码行数:31,

示例23: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权信息

* 只有需要验证权限时才会调用, 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.在配有缓存的情况下,只加载一次.

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {

UserEntity user = ShiroAuthenticationManager.getUserEntity();

if (user != null) {

List resourceList = resourceMapper.findResourcesByUserId(user.getId().intValue());

// 权限信息对象info,用来存放查出的用户的所有的角色(role)及权限(permission)

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

//根据用户ID查询角色(role),放入到Authorization里。

// 单角色用户情况

info.addRole(user.getRole().getKey());

// 多角色用户情况

// info.setRoles(user.getRolesName());

// 用户的角色对应的所有权限

for (ResourceEntity resourceEntity : resourceList) {

info.addStringPermission(resourceEntity.getSourceKey().trim());

if(StringUtils.isNotBlank(resourceEntity.getSourceUrl().trim()))

{

info.addStringPermission(resourceEntity.getSourceUrl().trim());

//可以正则匹配,也可以根据规则匹配,针对/*/add.html或/*/edit.html进行扩展,追加表单页面的权限/*/addUI.html或/*/editUI.html,这里暂不使用这种方式,而是改为手动添加资源的方式,比较灵活

/*

if(resourceEntity.getSourceUrl().endsWith("/add.html"))

{

info.addStringPermission(resourceEntity.getSourceUrl().replace("/add.html", "/addUI.html"));

}

if(resourceEntity.getSourceUrl().endsWith("/edit.html"))

{

info.addStringPermission(resourceEntity.getSourceUrl().replace("/edit.html", "/editUI.html"));

}

*/

}

}

//或者直接查询出所有权限set集合

//info.setStringPermissions(permissions);

return info;

}

return null;

}

开发者ID:wjggwm,项目名称:webside,代码行数:42,

示例24: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

String username = (String) principals.fromRealm(getName()).iterator().next();

//User user = accountManager.findUserByLoginName(username);

User user = accountManager.findUserByLoginNameOrEmail(username);

if (user != null && "1".equals(user.getId())) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

info.addRole("admin");

return info;

} else {

return null;

}

}

开发者ID:wkeyuan,项目名称:DWSurvey,代码行数:17,

示例25: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

String username = (String) principals.getPrimaryPrincipal();

SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();

authorizationInfo.addRole("admin");

return authorizationInfo;

}

开发者ID:booleguo,项目名称:sam-elle,代码行数:8,

示例26: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {

SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();

authorizationInfo.addRole("role1");

authorizationInfo.addRole("role2");

authorizationInfo.addObjectPermission(new BitPermission("+user1+10"));

authorizationInfo.addObjectPermission(new WildcardPermission("user1:*"));

authorizationInfo.addStringPermission("+user2+10");

authorizationInfo.addStringPermission("user2:*");

return authorizationInfo;

}

开发者ID:l81893521,项目名称:shiro-demo,代码行数:11,

示例27: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

if (principals == null)

throw new AuthorizationException("PrincipalCollection cannot be null");

Id userId = (Id) principals.getPrimaryPrincipal();

if (userId == null)

throw new AuthorizationException("Failed to get userId out of principalCollection");

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

UserService service = App.get().service(UserService.class);

User user = service.getUserForRealm(userId);

List roles = user.getRoles();

if (roles != null && roles.size() > 0) {

for (Role role : roles) {

info.addRole(role.getName().getString());

List permissions = role.getPermissions();

if (permissions != null && permissions.size() > 0) {

for (Permission permission : permissions) {

String stringPermission = toStringPermission(permission);

// System.out.println("Adding string permission: " +

// stringPermission);

if (!Str.isEmpty(stringPermission))

info.addStringPermission(stringPermission);

}

}

}

}

return info;

}

开发者ID:geetools,项目名称:geeCommerce-Java-Shop-Software-and-PIM,代码行数:40,

示例28: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

ObjectId userId = (ObjectId)principals.fromRealm(getName()).iterator().next();

User user = userDAO.findOne(userId);

if( user != null ) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for( Role role : user.getRoles() ) {

info.addRole(role.getName());

info.addStringPermissions( role.getPermissions() );

}

return info;

} else {

return null;

}

}

开发者ID:jvalenciag,项目名称:VaadinSpringShiroMongoDB,代码行数:16,

示例29: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

Long userId = (Long) principals.fromRealm(getName()).iterator().next();

User user = userDAO.getUser(userId);

if (user != null) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (Role role : user.getRoles()) {

info.addRole(role.getName());

info.addStringPermissions(role.getPermissions());

}

return info;

} else {

return null;

}

}

开发者ID:java-course-ee,项目名称:java-course-ee,代码行数:15,

示例30: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal();

User user = accountService.findUserByLoginName(shiroUser.loginName);

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (Role role : user.getRoleList()) {

//基于Role的权限信息

info.addRole(role.getName());

//基于Permission的权限信息

info.addStringPermissions(role.getPermissionList());

}

return info;

}

开发者ID:Michaelleolee,项目名称:appengine,代码行数:18,

示例31: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

final String u = ObjectUtils.toString(principals.getPrimaryPrincipal());

SimpleAuthorizationInfo a = new SimpleAuthorizationInfo();

//

Optional u2 = userService.getByUsername(u);

if (u2.isPresent() == false) return null;

//

for (Group g : u2.get().getGroups()) {

if (g.isEnabled()) {

LOG.trace(String.format("principal [%s] ++ role [%s].", u, g.getName()));

if (groupService.existsByName(g.getName())) {

a.addRole(g.getName());

} else {

LOG.warn(String.format("group [%s] not found, skip.", g.getName()));

}

} else {

LOG.warn(String.format("SKIP role [%s] for user [%s]", g.getName(), u));

}

}

//

if (false == a.getRoles().contains(GroupService.EVERYONE_ROLE)) {

Optional gEveryone = groupService.getByName(GroupService.EVERYONE_ROLE);

if (gEveryone.isPresent()) {

a.addRole(gEveryone.get().getName());

} else {

LOG.warn(String.format("'EVERYONE' ROLE [%s] NOT FOUND! (IGNORED.)", GroupService.EVERYONE_ROLE));

}

}

//

return a;

}

开发者ID:ageldama,项目名称:glados-wiki,代码行数:33,

示例32: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 为当前登录的Subject授予角色和权限

* -----------------------------------------------------------------------------------------------

* 经测试:本例中该方法的调用时机为需授权资源被访问时

* 经测试:并且每次访问需授权资源时都会执行该方法中的逻辑,这表明本例中默认并未启用AuthorizationCache

* 个人感觉若使用了Spring3.1开始提供的ConcurrentMapCache支持,则可灵活决定是否启用AuthorizationCache

* 比如说这里从数据库获取权限信息时,先去访问Spring3.1提供的缓存,而不使用Shior提供的AuthorizationCache

* -----------------------------------------------------------------------------------------------

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals){

//获取当前登录的用户名

String currentUsername = (String)super.getAvailablePrincipal(principals);

从数据库中获取当前登录用户的详细信息

//List roleList = new ArrayList();

//List permissionList = new ArrayList();

//User user = userService.getByUsername(currentUsername);

//if(null != user){

// //实体类User中包含有用户角色的实体类信息

// if(null!=user.getRoles() && user.getRoles().size()>0){

// //获取当前登录用户的角色

// for(Role role : user.getRoles()){

// roleList.add(role.getName());

// //实体类Role中包含有角色权限的实体类信息

// if(null!=role.getPermissions() && role.getPermissions().size()>0){

// //获取权限

// for(Permission pmss : role.getPermissions()){

// if(StringUtils.isNotBlank(pmss.getPermission())){

// permissionList.add(pmss.getPermission());

// }

// }

// }

// }

// }

//}else{

// throw new AuthorizationException();

//}

为当前用户设置角色和权限

//SimpleAuthorizationInfo simpleAuthorInfo = new SimpleAuthorizationInfo();

//simpleAuthorInfo.addRoles(roleList);

//simpleAuthorInfo.addStringPermissions(permissionList);

//实际中可能会像上面注释的那样,从数据库或缓存中取得用户的角色和权限信息

SimpleAuthorizationInfo simpleAuthorInfo = new SimpleAuthorizationInfo();

if(null!=currentUsername && "jadyer".equals(currentUsername)){

//添加一个角色,不是配置意义上的添加,而是证明该用户拥有admin角色

simpleAuthorInfo.addRole("admin");

//添加权限

simpleAuthorInfo.addStringPermission("admin:manage");

System.out.println("已为用户[jadyer]赋予了[admin]角色和[admin:manage]权限");

return simpleAuthorInfo;

}

if(null!=currentUsername && "xuanyu".equals(currentUsername)){

System.out.println("当前用户[xuanyu]无授权(不需要为其赋予角色和权限)");

return simpleAuthorInfo;

}

//若该方法什么都不做直接返回null的话

//就会导致任何用户访问/admin/listUser.jsp时都会自动跳转到unauthorizedUrl指定的地址

//详见applicationContext.xml中的的配置

return null;

}

开发者ID:v5java,项目名称:demo-springmvc-shiro,代码行数:61,

示例33: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

String principal = (String) getAvailablePrincipal(principals);

// 获取当前已登录的用户

//if (!Global.TRUE.equals(Global.getInstance().getConfig("user.multiAccountLogin"))){

//Collection sessions = getSystemService().getSessionDao().getActiveSessions(true, principal, UserUtils.getSession());

//if (sessions.size() > 0){

如果是登录进来的,则踢出已在线用户

//if (UserUtils.getSubject().isAuthenticated()){

//for (Session session : sessions){

//getSystemService().getSessionDao().delete(session);

//}

//}

记住我进来的,并且当前用户已登录,则退出当前用户提示信息。

//else{

//UserUtils.getSubject().logout();

//throw new AuthenticationException("msg:账号已在其它地方登录,请重新登录。");

//}

//}

//}

SysUser user =sysUserService.getByLoginName(principal);

if (user != null) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

List list = UserUtils.getMenuList();

for (SysMenu menu : list){

if (StringUtils.isNotBlank(menu.getPermission())){

// 添加基于Permission的权限信息

for (String permission : StringUtils.split(menu.getPermission(),",")){

info.addStringPermission(permission);

}

}

}

// 添加用户权限

info.addStringPermission("user");

// 添加用户角色信息

for (SysRole role : UserUtils.getRoleList()){

info.addRole(role.getEnname());

}

更新登录IP和时间

//getSystemService().updateUserLoginInfo(user);

记录登录日志

//LogUtils.saveLog(Servlets.getRequest(), "系统登录");

return info;

} else {

return null;

}

}

开发者ID:egojit8,项目名称:easyweb,代码行数:51,

示例34: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

Principal principal = (Principal) getAvailablePrincipal(principals);

// 获取当前已登录的用户

if (!Global.TRUE.equals(Global.getConfig("user.multiAccountLogin"))) {

Collection sessions = getSystemService().getSessionDao().getActiveSessions(true, principal,

UserUtils.getSession());

if (sessions.size() > 0) {

// 如果是登录进来的,则踢出已在线用户

if (UserUtils.getSubject().isAuthenticated()) {

for (Session session : sessions) {

getSystemService().getSessionDao().delete(session);

}

}

// 记住我进来的,并且当前用户已登录,则退出当前用户提示信息。

else {

UserUtils.getSubject().logout();

throw new AuthenticationException("msg:账号已在其它地方登录,请重新登录。");

}

}

}

User user = getSystemService().getUserByLoginName(principal.getLoginName());

if (user != null) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

List

for (Menu menu : list) {

if (StringUtils.isNotBlank(menu.getPermission())) {

// 添加基于Permission的权限信息

for (String permission : StringUtils.split(menu.getPermission(), ",")) {

info.addStringPermission(permission);

}

}

}

// 添加用户权限

info.addStringPermission("user");

// 添加用户角色信息

for (Role role : user.getRoleList()) {

info.addRole(role.getEnname());

}

// 更新登录IP和时间

getSystemService().updateUserLoginInfo(user);

// 记录登录日志

LogUtils.saveLog(Servlets.getRequest(), "系统登录");

return info;

} else {

return null;

}

}

开发者ID:ansafari,项目名称:melon,代码行数:52,

示例35: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

Principal principal = (Principal) getAvailablePrincipal(principals);

// 获取当前已登录的用户

if (!Global.TRUE.equals(Global.getConfig("user.multiAccountLogin"))){

Collection sessions = getSystemService().getSessionDao().getActiveSessions(true, principal, UserUtils.getSession());

if (sessions.size() > 0){

// 如果是登录进来的,则踢出已在线用户

if (UserUtils.getSubject().isAuthenticated()){

for (Session session : sessions){

getSystemService().getSessionDao().delete(session);

}

}

// 记住我进来的,并且当前用户已登录,则退出当前用户提示信息。

else{

UserUtils.getSubject().logout();

throw new AuthenticationException("msg:账号已在其它地方登录,请重新登录。");

}

}

}

User user = getSystemService().getUserByLoginName(principal.getLoginName());

if (user != null) {

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

List

for (Menu menu : list){

if (StringUtils.isNotBlank(menu.getPermission())){

// 添加基于Permission的权限信息

for (String permission : StringUtils.split(menu.getPermission(),",")){

info.addStringPermission(permission);

}

}

}

// 添加用户权限

info.addStringPermission("user");

// 添加用户角色信息

for (Role role : user.getRoleList()){

info.addRole(role.getEnname());

}

// 更新登录IP和时间

getSystemService().updateUserLoginInfo(user);

// 记录登录日志

LogUtils.saveLog(Servlets.getRequest(), "系统登录");

return info;

} else {

return null;

}

}

开发者ID:EleTeam,项目名称:Shop-for-JavaWeb,代码行数:51,

示例36: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 为当前登录的Subject授予角色和权限

*

* @see 经测试:本例中该方法的调用时机为需授权资源被访问时

* @see 经测试:并且每次访问需授权资源时都会执行该方法中的逻辑,这表明本例中默认并未启用AuthorizationCache

* @see 个人感觉若使用了Spring3

* .1开始提供的ConcurrentMapCache支持,则可灵活决定是否启用AuthorizationCache

* @see 比如说这里从数据库获取权限信息时,先去访问Spring3.1提供的缓存,而不使用Shior提供的AuthorizationCache

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(

PrincipalCollection principals) {

// 获取当前登录的用户名,等价于(String)principals.fromRealm(this.getName()).iterator().next()

String currentUsername = (String) super

.getAvailablePrincipal(principals);

// List roleList = new ArrayList();

// List permissionList = new ArrayList();

// //从数据库中获取当前登录用户的详细信息

// User user = userService.getByUsername(currentUsername);

// if(null != user){

// //实体类User中包含有用户角色的实体类信息

// if(null!=user.getRoles() && user.getRoles().size()>0){

// //获取当前登录用户的角色

// for(Role role : user.getRoles()){

// roleList.add(role.getName());

// //实体类Role中包含有角色权限的实体类信息

// if(null!=role.getPermissions() && role.getPermissions().size()>0){

// //获取权限

// for(Permission pmss : role.getPermissions()){

// if(!StringUtils.isEmpty(pmss.getPermission())){

// permissionList.add(pmss.getPermission());

// }

// }

// }

// }

// }

// }else{

// throw new AuthorizationException();

// }

// //为当前用户设置角色和权限

// SimpleAuthorizationInfo simpleAuthorInfo = new

// SimpleAuthorizationInfo();

// simpleAuthorInfo.addRoles(roleList);

// simpleAuthorInfo.addStringPermissions(permissionList);

SimpleAuthorizationInfo simpleAuthorInfo = new SimpleAuthorizationInfo();

// 实际中可能会像上面注释的那样从数据库取得

if (null != currentUsername && "mike".equals(currentUsername)) {

// 添加一个角色,不是配置意义上的添加,而是证明该用户拥有admin角色

simpleAuthorInfo.addRole("admin");

// 添加权限

simpleAuthorInfo.addStringPermission("admin:manage");

System.out.println("已为用户[mike]赋予了[admin]角色和[admin:manage]权限");

return simpleAuthorInfo;

}

// 若该方法什么都不做直接返回null的话,就会导致任何用户访问/admin/listUser.jsp时都会自动跳转到unauthorizedUrl指定的地址

// 详见applicationContext.xml中的的配置

return null;

}

开发者ID:shuli495,项目名称:fastjava,代码行数:59,

示例37: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

/**

* 为当前登录的Subject授予角色和权限

* @see 经测试:本例中该方法的调用时机为需授权资源被访问时

* @see 经测试:并且每次访问需授权资源时都会执行该方法中的逻辑,这表明本例中默认并未启用AuthorizationCache

* @see 个人感觉若使用了Spring3.1开始提供的ConcurrentMapCache支持,则可灵活决定是否启用AuthorizationCache

* @see 比如说这里从数据库获取权限信息时,先去访问Spring3.1提供的缓存,而不使用Shior提供的AuthorizationCache

*/

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals){

//获取当前登录的用户名,等价于(String)principals.fromRealm(this.getName()).iterator().next()

String currentUsername = (String)super.getAvailablePrincipal(principals);

// List roleList = new ArrayList();

// List permissionList = new ArrayList();

// //从数据库中获取当前登录用户的详细信息

// User user = userService.getByUsername(currentUsername);

// if(null != user){

// //实体类User中包含有用户角色的实体类信息

// if(null!=user.getRoles() && user.getRoles().size()>0){

// //获取当前登录用户的角色

// for(Role role : user.getRoles()){

// roleList.add(role.getName());

// //实体类Role中包含有角色权限的实体类信息

// if(null!=role.getPermissions() && role.getPermissions().size()>0){

// //获取权限

// for(Permission pmss : role.getPermissions()){

// if(!StringUtils.isEmpty(pmss.getPermission())){

// permissionList.add(pmss.getPermission());

// }

// }

// }

// }

// }

// }else{

// throw new AuthorizationException();

// }

// //为当前用户设置角色和权限

// SimpleAuthorizationInfo simpleAuthorInfo = new SimpleAuthorizationInfo();

// simpleAuthorInfo.addRoles(roleList);

// simpleAuthorInfo.addStringPermissions(permissionList);

SimpleAuthorizationInfo simpleAuthorInfo = new SimpleAuthorizationInfo();

//实际中可能会像上面注释的那样从数据库取得

if(null!=currentUsername && "shiro".equals(currentUsername)){

//添加一个角色,不是配置意义上的添加,而是证明该用户拥有admin角色

simpleAuthorInfo.addRole("users");

//添加权限

simpleAuthorInfo.addStringPermission("querys");

System.out.println("已为用户[shiro]赋予了[user]角色和[user:query]权限");

return simpleAuthorInfo;

}

//若该方法什么都不做直接返回null的话,就会导致任何用户访问/admin/listUser.jsp时都会自动跳转到unauthorizedUrl指定的地址

//详见applicationContext.xml中的的配置

return null;

}

开发者ID:idsoy,项目名称:spring-shiro,代码行数:55,

示例38: doGetAuthorizationInfo

​点赞 2

import org.apache.shiro.authz.SimpleAuthorizationInfo; //导入方法依赖的package包/类

@Override

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

if (principals == null) {

LOG.error("PrincipalCollection argument (principals) should never be null. Returning null AuthorizationInfo.");

return null;

}

Object principalId = getAvailablePrincipal(principals);

if (principalId == null) {

LOG.error("No principal available; no one to authorize. Returning null AuthorizationInfo.");

return null;

}

LOG.debug("Retrieving Roles & Permissions for Subject (aka, ISecurityUser) identified by '{}'.", principalId);

Set roles;

try {

if (principalId instanceof Long) {

LOG.debug("Current principalId is of type Long, treating as a PrincipalValueField.USER_ID value.");

UserSecurityDAO usd = getUserSecurityDAO();

if (usd instanceof IdentifiedUserSecurityDAO) {

roles = ((IdentifiedUserSecurityDAO) getUserSecurityDAO()).getUserRoles((Long) principalId);

} else {

throw new IllegalStateException("UserSecurityDAO must be an instance of the IdentifiedUserSecurityDAO sub-type for this operation. PrincipalCollection's available principal is of type Long, the DAO needs to expose the getUserRoles((Long) principalId) method to support this usage, or change the principalValueFields to make USERNAME the primary principalId.");

}

} else if (principalId instanceof String) {

LOG.debug("Current principalId is of type String, treating as a PrincipalValueField.USERNAME value.");

roles = getUserSecurityDAO().getUserRoles((String) principalId);

} else {

LOG.error("The provided principal is of an unsupported type. This method supports Long and String typed identifiers. Provided type was {}; provided value was: {}.", principalId.getClass().getName(), principalId);

throw new AuthorizationException("The provided principal is of an unsupported type. This method supports Long and String typed identifiers. Provided type was " + principalId.getClass().getName() + "; provided value was: " + principalId);

}

} catch (RuntimeException ex) {

LOG.error("Error retrieving Roles from database for user with identifier '" + principalId + "'.", ex);

throw new AuthorizationException("No account found for user identified by '" + principalId + "'.", ex);

}

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();

for (ISecurityRole role : roles) {

LOG.debug("User: '{}', adding role '{}'.", principalId, role);

info.addRole(role.getName());

info.addStringPermissions(role.getPermissions());

}

return info;

}

开发者ID:Multifarious,项目名称:shiro-jdbi-realm,代码行数:44,

注:本文中的org.apache.shiro.authz.SimpleAuthorizationInfo.addRole方法示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值