理论篇-安全框架

年份:2018

日期:9-2

知识:shiro

1>Shiro定义:

shiro是Apache的强大灵活的开源安全框架

Shiro主要可以用在:认证/授权/企业会话管理/安全加密等地方

2>Shiro与spring security比较

Shiro

spring security

简单,灵活

复杂笨重

可脱离spring

不可脱离spring

粒度较粗

粒度较细

3>Shiro认证

认证流程

 

4>Shiro授权

授权流程

 

5>Shiro加密

5.1>Shiro-散列配置

5.2>HashedCredentialsMatcher

5.3自定义realm中使用散列

5.4>盐的使用

6 shiro与spring整合

//maven项目例:

1> 引入需要的jar

spring-context

spring-webmvc

shiro-core

shiro-spring

shiro-web

2 shiro-web.xml配置shiro过滤器

[org.springframework.web.filter.DelegatingFilterProxy]

3 spring.xml

shirofilter 对象

[org.apache.shiro.web.ShiroFilterFactoryBean]

//

过滤器链

//

securityManager对象

[org.apache.shiro.web.mgt.DefaultWebSecurityManager]

 

Realm

[class属性指向类]

加密

[org.apache.shiro.authc.credential.HashedCredentialsMatcher]

 

注解方式

注解:

Shiro共有5个注解

RequiresAuthentication:

使用该注解标注的类,实例,方法在访问或调用时,当前Subject必须在当前session中已经过认证。

RequiresGuest:

使用该注解标注的类,实例,方法在访问或调用时,当前Subject可以是“gust”身份,不需要经过认证或者在原先的session中存在记录。

RequiresPermissions:

当前Subject需要拥有某些特定的权限时,才能执行被该注解标注的方法。如果当前Subject不具有这样的权限,则方法不会被执行。

RequiresRoles:

当前Subject必须拥有所有指定的角色时,才能访问被该注解标注的方法。如果当天Subject不同时拥有所有指定角色,则方法不会执行还会抛出AuthorizationException异常。

RequiresUser

当前Subject必须是应用的用户,才能访问或调用被该注解标注的类,实例,方法。

8过滤器

 

//(1)

AuthorizatioinFilter = 授权

AuthenticatingFilter = 认证

实现自定义时,需要继承

//

[

代码逻辑

1 获取主题

2 获取角色

3 处理

3.1 是否存在角色

3.2 存在对应的角色应该怎样做

]

2 shiro-web.xml

说明:

1 = 配置自定义的filter的bean

2 =添加property属性

3 = 过滤链加入filter

 

猜你喜欢

转载自blog.csdn.net/zjc_jia/article/details/82316460