下载资源后端资源详情
gemini-shiro.zip
大小:110.93KB
价格:18积分
下载量:0
评分:
5.0
上传者:qq_31884661
更新日期:2025-09-22

shiro框架权限demo

资源文件列表(大概)

文件名
大小
gemini-shiro/
-
gemini-shiro/.idea/
-
gemini-shiro/.idea/compiler.xml
789B
gemini-shiro/.idea/copyright/
-
gemini-shiro/.idea/copyright/profiles_settings.xml
76B
gemini-shiro/.idea/encodings.xml
271B
gemini-shiro/.idea/libraries/
-
gemini-shiro/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml
514B
gemini-shiro/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_3.xml
594B
gemini-shiro/.idea/libraries/Maven__commons_dbcp_commons_dbcp_1_4.xml
525B
gemini-shiro/.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml
572B
gemini-shiro/.idea/libraries/Maven__commons_pool_commons_pool_1_5_4.xml
539B
gemini-shiro/.idea/libraries/Maven__com_fasterxml_classmate_0_8_0.xml
522B
gemini-shiro/.idea/libraries/Maven__javax_inject_javax_inject_1.xml
511B
gemini-shiro/.idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml
608B
gemini-shiro/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml
473B
gemini-shiro/.idea/libraries/Maven__javax_servlet_servlet_api_2_5.xml
522B
gemini-shiro/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml
611B
gemini-shiro/.idea/libraries/Maven__junit_junit_3_8_1.xml
462B
gemini-shiro/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_26.xml
574B
gemini-shiro/.idea/libraries/Maven__net_sf_ehcache_ehcache_2_7_2.xml
512B
gemini-shiro/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_8_1.xml
570B
gemini-shiro/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_2_2.xml
541B
gemini-shiro/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_2_2.xml
555B
gemini-shiro/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_2_2.xml
534B
gemini-shiro/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml
606B
gemini-shiro/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml
620B
gemini-shiro/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_0_1_Final.xml
634B
gemini-shiro/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_1_GA.xml
587B
gemini-shiro/.idea/libraries/Maven__org_slf4j_slf4j_api_1_6_6.xml
506B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_aop_3_2_4_RELEASE.xml
609B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_beans_3_2_4_RELEASE.xml
623B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_context_3_2_4_RELEASE.xml
637B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_core_3_2_4_RELEASE.xml
616B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_expression_3_2_4_RELEASE.xml
658B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_jdbc_3_2_4_RELEASE.xml
616B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_orm_3_2_4_RELEASE.xml
609B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_tx_3_2_4_RELEASE.xml
602B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_webmvc_3_2_4_RELEASE.xml
630B
gemini-shiro/.idea/libraries/Maven__org_springframework_spring_web_3_2_4_RELEASE.xml
609B
gemini-shiro/.idea/misc.xml
1.16KB
gemini-shiro/.idea/modules.xml
264B
gemini-shiro/.idea/workspace.xml
62.75KB
gemini-shiro/gemini-shiro.iml
4.15KB
gemini-shiro/pom.xml
4.81KB
gemini-shiro/Shiro.md
1.64KB
gemini-shiro/src/
-
gemini-shiro/src/main/
-
gemini-shiro/src/main/java/
-
gemini-shiro/src/main/java/com/
-
gemini-shiro/src/main/java/com/yueke/
-
gemini-shiro/src/main/java/com/yueke/gemini/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/constants/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/constants/Global.java
174B
gemini-shiro/src/main/java/com/yueke/gemini/shiro/controller/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/controller/HomeController.java
2.26KB
gemini-shiro/src/main/java/com/yueke/gemini/shiro/entity/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/entity/Menu.java
167B
gemini-shiro/src/main/java/com/yueke/gemini/shiro/entity/Permission.java
917B
gemini-shiro/src/main/java/com/yueke/gemini/shiro/entity/Role.java
1.63KB
gemini-shiro/src/main/java/com/yueke/gemini/shiro/entity/User.java
1.81KB
gemini-shiro/src/main/java/com/yueke/gemini/shiro/realm/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/realm/SystemAuthorizingRealm.java
5.19KB
gemini-shiro/src/main/java/com/yueke/gemini/shiro/realm/UserRealm.java
2.37KB
gemini-shiro/src/main/java/com/yueke/gemini/shiro/service/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/service/impl/
-
gemini-shiro/src/main/java/com/yueke/gemini/shiro/service/impl/UserServiceImpl.java
409B
gemini-shiro/src/main/java/com/yueke/gemini/shiro/service/UserService.java
289B
gemini-shiro/src/main/resources/
-
gemini-shiro/src/main/resources/applicationContext-Servlet.xml
2.6KB
gemini-shiro/src/main/resources/applicationContext-Shiro.xml
4.42KB
gemini-shiro/src/main/webapp/
-
gemini-shiro/src/main/webapp/403.jsp
391B
gemini-shiro/src/main/webapp/login.jsp
760B
gemini-shiro/src/main/webapp/user.jsp
2.01KB
gemini-shiro/src/main/webapp/WEB-INF/
-
gemini-shiro/src/main/webapp/WEB-INF/web.xml
1.57KB
gemini-shiro/src/test/
-
gemini-shiro/src/test/java/
-
gemini-shiro/权限.png
71.92KB

资源内容介绍

shiro框架权限demo
package com.yueke.gemini.shiro.realm;/** * Created by admin on 2019/2/23. */import com.yueke.gemini.shiro.constants.Global;import com.yueke.gemini.shiro.entity.Menu;import com.yueke.gemini.shiro.entity.Role;import com.yueke.gemini.shiro.entity.User;import com.yueke.gemini.shiro.service.UserService;import org.apache.commons.lang3.StringUtils;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.*;import org.apache.shiro.authz.AuthorizationInfo;import org.apache.shiro.authz.SimpleAuthorizationInfo;import org.apache.shiro.realm.AuthorizingRealm;import org.apache.shiro.session.Session;import org.apache.shiro.subject.PrincipalCollection;import org.apache.shiro.subject.Subject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 自定义的指定Shiro验证用户登录的类 * 在本例中定义了2个用户:jadyer和玄玉,jadyer具有admin角色和admin:manage权限,玄玉不具有任何角色和权限 * @User: coding99 * */@Servicepublic class SystemAuthorizingRealm extends AuthorizingRealm { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private UserService userService;// @Autowired// private RoleService roleService;// @Autowired// private MenuService menuService; /** * 为当前登录的Subject授予角色和权限 * 经测试:本例中该方法的调用时机为需授权资源被访问时 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { //获取当前登录的用户名,等价于(String)principals.fromRealm(this.getName()).iterator().next() String currentAccount = (String) super.getAvailablePrincipal(principals); List<String> roleNameList = new ArrayList<String>(); List<String> permissionList = new ArrayList<String>(); //从数据库中获取当前登录用户的详细信息 User user = getUser(); if (null != user) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); List<Role> roleList = null;// roleService.selectRoleByUserId(user.getId()); Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", user.getId()); map.put("permission", "permission"); List<Menu> menuList = null; // menuService.selectMenuByUserId(map); for (Role role : roleList) { roleNameList.add(role.getRolename()); } info.addRoles(roleNameList); // for (Menu menu : menuList) {// if (StringUtils.isNotBlank(menu.getPermission())) {// if (StringUtils.isNotEmpty(menu.getPermission())) {// String[] permissions = menu.getPermission().split(",");// for (int i = 0; i < permissions.length; i++) {// if (StringUtils.isNotEmpty(permissions[i])) {// permissionList.add(permissions[i]);// }// }// }// }// } info.addStringPermissions(permissionList); return info; } else { return null; } } /** * 验证当前登录的Subject * 经测试:本例中该方法的调用时机为LoginController.login()方法中执行Subject.login()时 */ @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; String username = token.getUsername(); User user = userService.findByName(username); if (user == null) { throw new UnknownAccountException("帐号找不到"); } if ("0".equals(user.getStatus())) { throw new LockedAccountException("msg:该已帐号禁止登录."); } SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName()); setSession(Global.GLOBAL_USER, user); return authenticationInfo; } /** * 将一些数据放到ShiroSession中,以便于其它地方使用 * 比如Controller,使用时直接用HttpSession.getAttribute(key)就可以取到 */ private void setSession(Object key, Object value) { Subject currentUser = SecurityUtils.getSubject(); if (null != currentUser) { Session session = currentUser.getSession(); System.out.println("Session默认超时时间为[" + session.getTimeout() + "]毫秒"); if (null != session) { session.setAttribute(key, value); } } } private User getUser() { Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); User user = (User) session.getAttribute(Global.GLOBAL_USER); return user; }}

用户评论 (0)

发表评论

captcha