验证对外的接口就是 subject
subject.login(token) 进行调用的验证
调用前需要将securityManager设置给securityUtils 即 security.setSecurityManager
subject 委托给 securityManager 他是用你来处理验证的逻辑
securityManager 又委托给Authenticato来进行身份验证
Authenticator可能会委托给相应的AuthenticationStrategy进行多Realm身份验证,默认
ModularRealmAuthenticator会调用AuthenticationStrategy进行多Realm身份验证;
Authenticator 会把相应的token 传入Realm,从Realm 获取身份验证信
Realm:域,Shiro 从从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager
要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;
也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看
成DataSource , 即安全数据源。如我们之前的ini 配置方式将使用
org.apache.shiro.realm.text.IniRealm。
所以,在spring中,就是形成以securityManager为核心的配置文件,将整个流程
需要调用的类的实现交给securityManager就可以了
shiro使用ini配置文件和集成spring都是为了整个流程的设置自己或者默认
的对应实现,ini是读取配置文件设置对应的关系,而spring是读取xml的配置
文件信息设置的
配置数据库之后,shiro会根据配置的数据库连接和jbdcRealm进行查询,通过
名称去查询用户,jdbcRealm里面默认的查询表示user表,默认字段是username
和password,当然,这个是可以自定义的
subject.login(token) 进行调用的验证
调用前需要将securityManager设置给securityUtils 即 security.setSecurityManager
subject 委托给 securityManager 他是用你来处理验证的逻辑
securityManager 又委托给Authenticato来进行身份验证
Authenticator可能会委托给相应的AuthenticationStrategy进行多Realm身份验证,默认
ModularRealmAuthenticator会调用AuthenticationStrategy进行多Realm身份验证;
Authenticator 会把相应的token 传入Realm,从Realm 获取身份验证信
Realm:域,Shiro 从从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager
要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;
也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看
成DataSource , 即安全数据源。如我们之前的ini 配置方式将使用
org.apache.shiro.realm.text.IniRealm。
所以,在spring中,就是形成以securityManager为核心的配置文件,将整个流程
需要调用的类的实现交给securityManager就可以了
shiro使用ini配置文件和集成spring都是为了整个流程的设置自己或者默认
的对应实现,ini是读取配置文件设置对应的关系,而spring是读取xml的配置
文件信息设置的
配置数据库之后,shiro会根据配置的数据库连接和jbdcRealm进行查询,通过
名称去查询用户,jdbcRealm里面默认的查询表示user表,默认字段是username
和password,当然,这个是可以自定义的