spring是在2003年兴起的javaee轻量级、开源框架,为了使javaee项目开发起来简单而设计的。
rodjohnson是spring的创建者,他还写了两本经典之作《expertone-on-onej2eedesignanddevelopment》和《expertone-on-onej2eedevelopmentwithoutejb》
spring是分层架构、模块化,开发者可以任意选择使用的其中部分;spring是一个分层的javase/eefull-stack(一站式)轻量级开源框架;
为什么说spring是企业应用开发的“一站式”选择,因为它贯穿表现层、业务层及持久层。然而,spring并不想取代那些已有的框架,而是与它们无缝地整合。
sh框架风靡整个it行业,而作为该框架中的管理员,spring负责管理其他的框架,协调各个部分的工作。那么今天小编就带大家一起学习spring的配置方法。
spring整合配置
1.在web.xml中配置shiro的过滤器
org.springframework.web.filter.delegatingfilterproxy
[html]viewplaincopy
org.springframework.web.filter.delegatingfilterproxy
2.在spring的applicationcontext.xml中添加shiro配置
[html]viewplaincopy
/home*=anon
/=anon
/logout=logout
/role/**=roles[admin]
/permission/**=perms[permssion:look]
/**=authc
[html]viewplaincopy
/home*=anon
/=anon
/logout=logout
/role/**=roles[admin]
/permission/**=perms[permssion:look]
/**=authc
securitymanager:这个属性是必须的。
loginurl:没有登录的用户请求需要登录的页面时自动跳转到登录页面,不是必须的属性,不输入地址的话会自动寻找项目web项目的根目录下的”/login.jsp”页面。
successurl:登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。
unauthorizedurl:没有权限默认跳转的页面。
anon:例子/admins/**=anon没有参数,表示可以匿名使用。
authc:例如/admins/user/**=authc表示需要认证(登录)才能使用,没有参数
roles:例子/admins/user/**=roles[admin],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,例如admins/user/**=roles[“admin,guest”],每个参数通过才算通过,相当于hasallroles()方法。
perms:例子/admins/user/**=perms[user:add:*],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/**=perms[“user:add:*,user:modify:*”],当有多个参数时必须每个参数都通过才通过,想当于ispermitedall()方法。
rest:例子/admins/user/**=rest[user],根据请求的方法,相当于/admins/user/**=perms[user:method],其中method为post,get,delete等。
port:例子/admins/user/**=port[8081],当请求的url的端口不是8081是跳转到schemal://servername:8081?querystring,其中schmal是协议http或https等,servername是你访问的host,8081是url配置里port的端口,querystring
是你访问的url里的?后面的参数。
authcbasic:例如/admins/user/**=authcbasic没有参数表示httpbasic认证
ssl:例子/admins/user/**=ssl没有参数,表示安全的url请求,协议为https
user:例如/admins/user/**=user没有参数表示必须存在用户,当登入操作时不做检查
注:anon,authcbasic,auchc,user是认证过滤器,
perms,roles,ssl,rest,port是授权过滤器
3.在applicationcontext.xml中添加securitymanagerper配置
[html]viewplaincopy
[html]viewplaincopy
[html]viewplaincopy
[html]viewplaincopy
4.配置jdbcrealm
[html]viewplaincopy
value=“selectt.passwordfrommy_usertwheret.username=?”/>
value=“selecta.rolenamefrommy_user_roletleftjoinmy_roleaont.roleid=a.idwheret.username=?”/>
value=“selectb.permissionfrommy_roletleftjoinmy_role_permissionaont.id=a.role_idleftjoinmy_permissionbona.permission=b.idwheret.rolename=?”/>
[html]viewplaincopy
value=“selectt.passwordfrommy_usertwheret.username=?”/>
value=“selecta.rolenamefrommy_user_roletleftjoinmy_roleaont.roleid=a.idwheret.username=?”/>
value=“selectb.permissionfrommy_roletleftjoinmy_role_permissionaont.id=a.role_idleftjoinmy_permissionbona.permission=b.idwheret.rolename=?”/>
datasource数据源,配置不说了。
authenticationquery登录认证用户的查询sql,需要用登录用户名作为条件,查询密码字段。
userrolesquery用户角色查询sql,需要通过登录用户名去查询。查询角色字段
permissionsquery用户的权限资源查询sql,需要用单一角色查询角色下的权限资源,如果存在多个角色,则是遍历每个角色,分别查询出权限资源并添加到集合中。
permissionslookupenabled默认false。false时不会使用permissionsquery的sql去查询权限资源。设置为true才会去执行。
saltstyle密码是否加盐,默认是no_salt不加盐。加盐有三种选择crypt,column,external。详细可以去看文档。这里按照不加盐处理。
credentialsmatcher密码匹配规则。下面简单介绍。
[html]viewplaincopy
class=“org.apache.shiro.authc.credential.hashedcredentialsmatcher”>
[html]viewplaincopy
class=“org.apache.shiro.authc.credential.hashedcredentialsmatcher”>
hashalgorithmname必须的,没有默认值。可以有md5或者sha-1,如果对密码安全有更高要求可以用sha-256或者更高。这里使用md5
storedcredentialshexencoded默认是true,此时用的是密码加密用的是hex编码;false时用base64编码
hashiterations迭代次数,默认值是1。
华为Mate20X续航怎么样
应用于无线传感器网络的蓝牙低功耗技术介绍
MakerBot 3D打印机成功扩充了两种新材料
诺基亚宣布开始研究可穿戴设备其数字健康业务的战略选择
智能网联汽车总线三合一测试利器,让偶发故障排查更简单
spring配置方式详细介绍
英特尔与大数据之间的联系和应用
2020年EeIE智博会再发“深圳之约” 8月6日至8日不见不散
法拉第未来产能缩水至一万辆每年 官方终于给出相关回应
全自动孢子捕捉分析仪的特点
生产设备近半被闲置 LED行业“洗牌潮”暗涌
关于综合食品安全检测仪的详细说明
购买高尔夫测距仪品牌产品需要考虑哪些因素?
人工智能赋能实体经济存在的问题与应对方案
iPhone 15 Pro Max可能延迟发货,因索尼传感器供应不足
“工业互联网明星测试床”和“清华数为工业互联网时序数据库”两项重大成果成功发布
FORESEE XP2200 PCIe BGA SSD荣获2023年“中国芯”优秀技术创新产品奖
通过NVIDIA CloudXR实现沉浸式生产体验
诺德股份联合铜箔通过LG化学审核并开始小批量供货
哪些因素在影响金属力学拉伸试验呢?