1.Apache Shiro的三大核心组件:
Authentication和Authorization:
在Shiro的用户权限认证过程中其通过两个方法来实现:
其他组件:
除了上述几个组件外:Shiro还有几个组件:
2.Shiro的优点:
3.比较Spring Security和Apache Shiro:
4.Shiro如何自实现认证:
Shiro的认证过程由Realm执行,SecurityManager会调用Realm包下的getAuthenticationInfo(AuthenticationToken token)方法。
实际开发中,通常提供org.apache.shiro.realm.AuthenticatingRealm 的实现类,并在该实现类中提供doGetAuthenticationInfo(AuthenticationToken token)方法的具体实现。
5.Shiro如何实现自实现授权:
实际开发中,通常提供org.apache.shiro.realm.AuthenticatingRealm 的实现类,并提供doGetAuthorizationInfo(PrincipalCollection principals)方法的具体实现。
配置ShiroConfig
创建一个方法并给注解@Bean将其交给Spring进行管理,返回类型为ShiroFilterFactoryBean类型 参数为SecurityManager securityManager
在方法中new ShiroFilterFactoryBean(),运用setSecurityManager()把securityManager传进去进行设置
运用setLoginUrl让用户在访问某个接口需要登录时跳转页面,运用setUnauthorizedUrl让用户登录后没有权限时跳转页面
new LinkedHashMap<>();把相关路径所需的权限进行设置,之后把其交给setFilterChainDefinitionMap()中。
创建一个方法并给注解@Bean将其交给Spring进行管理,返回类型为SecurityManager类型的securityManager()方法,new DefaultWebSecurityManager();
因其securityManager可以管理各种组件,所以可以绑定各种自定义的组件,设置绑定realm推荐放到最后,不然某些情况下不生效。
6.Shiro有哪些组件:
Authentication:身份认证/登录,验证用户是不是拥有相应的身份。
Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限
Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;
Crypotgraphy:加密,保护数据的安全行,如密码加密存储到数据库,而不是明文存储;
Web Support:Web支持,可以非常容易的集成到Web环境。
Remember me:记住我,这是一个非常常见的功能,即一次登录后,下次再来的话不用登录了。
以上就是“快问快答之shiro框架面试题”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注动力节点Java官网。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习