在官网给的源码中,学习如何搭建第一个基于shiro的例子:
- 开发工具 IDEA 2017.2.3
- JDK 1.8
- Spring 4.3.8
- Shiro 1.3.2
文章图片
_第1张图片" style="border:1px solid black; "> image.png 在pom.xml文件里添加
org.apache.shiro
shiro-core
1.3.2
org.apache.shiro
shiro-spring
1.3.2
org.apache.shiro
shiro-ehcache
1.4.0
net.sf.ehcache
ehcache-core
2.6.11
org.apache.shiro
shiro-web
1.3.2
javax.servlet
javax.servlet-api
3.1.0
provided
hsqldb
hsqldb
1.8.0.10
runtime
org.slf4j
slf4j-log4j12
1.7.21
runtime
org.slf4j
jcl-over-slf4j
1.7.25
runtime
log4j
log4j
1.2.17
runtime
org.springframework
spring-context
4.3.8.RELEASE
org.springframework
spring-jdbc
4.3.8.RELEASE
org.springframework
spring-webmvc
4.3.8.RELEASE
javax.servlet
jstl
1.2
runtime
修改web.xnk文件:配置springmvc前端控制器啊和shiro的拦截器
contextConfigLocationclasspath:applicationContext.xml
shiroFilter
org.springframework.web.filter.DelegatingFilterProxy
targetFilterLifecycletrue
shiroFilter
/*
org.springframework.web.context.ContextLoaderListener
spring
org.springframework.web.servlet.DispatcherServletspring
/
在资源文件夹新建applicationContext.xml文件
/login = anon# everything else requires authentication:
/** = authc
配置springmvc的组件:spring-servlet.xml
配置log4j,控制台输出日志:log4j.properties
log4j.rootLogger=INFO, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n# General Apache libraries
log4j.logger.org.apache=WARN# Spring
log4j.logger.org.springframework=WARN# Default Shiro logging
log4j.logger.org.apache.shiro=TRACE# Disable verbose logging
log4j.logger.org.apache.shiro.util.ThreadContext=WARN
log4j.logger.org.apache.shiro.cache.ehcache.EhCache=WARN
先实现身份验证 流程
- 1、收集用户身份/凭证,即如用户名/密码
- 2、调用 Subject.login 进行登录,如果失败将得到相应AuthenticationException 异常,根据异常提示用户错误信息;否则登录成功
- 3、创建自定义的 Realm 类,继承org.apache.shiro.realm.AuthorizingRealm 类,实现doGetAuthenticationInfo() 方法
【Shiro实战】1.编写一个简单的login表单页面
2.编写Controller,获取输入的参数,创建token对象,传给 Subject.login
3.编写自定义Realm类,实现doGetAuthenticationInfo() 方法里的逻辑