在controller层登录,传入username与password 用SecurityUtils类的getSubject方法获取一个新建的Subject 把name与password封装成一个token 用subject.login(token)执行登录方法,如果有异常会catch住
新建UserRealm类继承AuthorizngRealm,自动实现授权和认证两个方法:

先把用户信息用securityUtils.getSubject方法取出来放在subject里面, 然后用取出来的subject.getPrincipal方法获得这个类的主体也就是user, 用userService里面的findByID或者FindByName方法获取这个数据库里的dbuser 把这个数据库里的dbuser获取到的权限permission ,用addPermission方法set到simpleAuthorizationInfo当中并且返回,返回AuthorizationInfo类授权方法完成
证方法实现 新建一个SimpleAuthenticINfo 类 用传入参数强转成UserNamePasswordToken对象 用userService在数据库中查询传入参数的用户,没有返回null 最后返回新建的SimpleAuthenticInfo,方法里传入参数(第一个可以是username,也可以直接是user,第二个参数为password,后面的参数为盐值)
新建ShiroConfig类,用@Configration类注解 在类里面建三个方法:
返回一个上一步建的UserRealm对象
新建DefaltWebSecurityManager,把上一个的realm设置到里面,返回securityManager

这个方法的作用是设置权限过滤器 新建一个ShiroFilterFactoryBean,把上一步的securityManager设置到里面 建LinkedHashMap类,把权限设置到map里面,在设置一些默认跳转页面,最后把map设置到类里面
具体案例请参看下面博客:具体案例