zoukankan      html  css  js  c++  java
  • 整合权限认证

    package com.aa.test.config;
    
    import com.aa.test.shiro.MyRealm;
    import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition;
    import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;
    import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class ShiroConfig {
        @Autowired
        private MyRealm myRealm;
        @Bean
        public DefaultWebSecurityManager securityManager(){
            DefaultWebSecurityManager defaultWebSecurityManager=new DefaultWebSecurityManager();
            defaultWebSecurityManager.setRealm(myRealm);
            return defaultWebSecurityManager;
        }
    
        //自定义shiro过滤器
        public ShiroFilterChainDefinition filterChainDefinition(){
            DefaultShiroFilterChainDefinition filterChainDefinition=new DefaultShiroFilterChainDefinition();
            //代表的是这个路径不认证也可以访问
            filterChainDefinition.addPathDefinition("/login","anon");
    
            //代表的是除了上面这个可以放行,其他的必须认证之后才能放行
            filterChainDefinition.addPathDefinition("/**","authc");
            
            return filterChainDefinition;
        }
    }
    

      

    package com.aa.test.shiro;
    
    import com.aa.test.pojo.User;
    import com.aa.test.service.UserService;
    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.realm.AuthenticatingRealm;
    import org.apache.shiro.realm.AuthorizingRealm;
    import org.apache.shiro.subject.PrincipalCollection;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    @Component
    public class MyRealm extends AuthorizingRealm {
        @Autowired
        private UserService userService;
        //授权
        @Override
        protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
            return null;
        }
    
        //认证
    
        @Override
        protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
            //获取用户信息
            Object principal = token.getPrincipal();
            //根据用户名获取数据库中用户信息
            User user = userService.selUserInfoService((String) principal);
            if(user!=null){
                AuthenticationInfo info = new SimpleAuthenticationInfo(principal, user.getPwd(), user.getUname());
                return info;
            }
    
            return null;
        }
    }
    

      

      //使用shiro认证
        @RequestMapping("userLogin2")
        public String userLogin2(String uname,String pwd){
    
            Subject subject = SecurityUtils.getSubject();
            AuthenticationToken token = new UsernamePasswordToken(uname, pwd);
    
            try {
                subject.login(token);
                return "redirect:main";
            }catch (Exception e){
                e.printStackTrace();
    
            }
            return "redirect:login";
        }
    

      

  • 相关阅读:
    解决xcode5升级后,Undefined symbols for architecture arm64:问题
    第8章 Foundation Kit介绍
    app 之间发送文件 ios
    iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
    CRM下载对象一直处于Wait状态的原因
    错误消息Customer classification does not exist when downloading
    How to resolve error message Distribution channel is not allowed for sales
    ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
    有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
    SAP GUI和Windows注册表
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14355521.html
Copyright © 2011-2022 走看看