我正在阅读Apache Shiro,想看看我是否正确地建立了这种思维模型。
从文档:“A
Realm
是一个组件,例如应用特定的罐访问的安全数据users
,roles
和permissions
”。..“领域通常与数据源(例如关系数据库,LDAP目录,文件系统或其他类似资源)具有一对一的关联。”
此外,我已阅读到出于其身份验证和授权目的,一个application
可能包含多个realms
。
很好,但是这Realms
与用户的概念有什么关系?
Realm
应该是用户空间上的一个分区吗?即:一次User
只能在1中发生Realm
Realms
可以用于在彼此之间进行身份验证和授权,并且 可以 在同一层上工作User
。但是,在那种情况下,User
托管在哪里?Realm
我想它应该在外部,但是在哪里?也许我对此感到困惑,因为我想将其User
视为一个实体(例如:对我来说只有一个实体)。而应该将其User
视为一个UserAccount
。即:每个人都Realm
管理自己的Useraccounts
(在称为的文档中User
),但是一个User
可以有多个UserAcounts
。那是对的吗?
假设以上是正确的:
UserAccounts
给定用户?即:基本上合并Useraccounts
在一起以获得完整的视图User
?User
这种情况(1个User
可能有多个UserAccounts
)的概念? 您可以定义Realms
in
之间的关系authenticationStrategy
。让我们来看一个例子。仅当用户针对所有领域通过身份验证时,才会对用户进行身份验证。您可以进行自己的authenticationStrategy实现,该实现只说一个成功的身份验证就足够了。
在示例中,我们结合了JDBC领域来存储用户名(没有密码),并根据LDAP对其进行身份验证。
可以说,您将添加另一个LDAP领域并创建authenticationStrategy,其中不需要针对领域的所有身份验证。但是,只需对LDAP成功进行一次身份验证就足够了。
ds = org.apache.shiro.jndi.JndiObjectFactory
ds.requiredType = javax.sql.DataSource
ds.resourceName = java:comp/env/jdbc/xxx
noPassWordCredentialMatcher = eu.corp.domain.auth.NoPassMatcher
ldapRealm = eu.corp.domain.auth.CustomActiveDirectoryRealm
ldapRealm.searchBase = OU=USERS,OU=EN,DC=our,DC=corp
ldapRealm.url = ldap://our.corp:389
ldapRealm.principalSuffix = @our.corp
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.permissionsLookupEnabled = true
jdbcRealm.dataSource = $ds
jdbcRealm.credentialsMatcher = $noPassWordCredentialMatcher
jdbcRealm.authenticationQuery = SELECT name FROM auth WHERE name = ?
jdbcRealm.userRolesQuery = SELECT role.shortcut FROM auth LEFT JOIN auth_role ON auth_role.auth_id = auth.id LEFT JOIN role ON role.id = auth_role.role_id WHERE auth.name = ?
jdbcRealm.permissionsQuery = SELECT permission.shortcut FROM role JOIN role_permission ON role_permission.role_id = role.id JOIN permission ON permission.id = role_permission.permission_id WHERE role.shortcut = ?
cacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
securityManager.cacheManager = $cacheManager
securityManager.realms = $ldapRealm, $jdbcRealm
authcStrategy = org.apache.shiro.authc.pam.AllSuccessfulStrategy
securityManager.authenticator.authenticationStrategy = $authcStrategy
Kubernetes 和云原生应用在各个领域中的实践。
本节介绍分析云账户权限系统相关的名词与概念,熟悉这些概念有助于您更好的进行后续的权限配置功能。 管理员账户 创建该站点的主账户 授权/受邀账户 通过授权系统,授权可访问该分析云站点的账户 权限站点 受邀账户接受的其他账户授权给自己的站点,对于受邀账户来说称之为“权限站点”,与之相对应的是由受邀账户自己创建的站点(此时受邀账户相对于自建站点的身份是管理员账户,而非受邀账户) 功能与功能权限 功能是指
本文向大家介绍解释领导者和追随者的概念。相关面试题,主要包含被问及解释领导者和追随者的概念。时的应答技巧和注意事项,需要的朋友参考一下 答:在Kafka的每个分区中,都有一个服务器充当领导者,0到多个服务器充当追随者的角色。
本节介绍分析云账户权限系统相关的名词与概念,熟悉这些概念有助于您更好的进行后续的权限配置功能。 管理员账户 创建该站点的主账户 授权/受邀账户 通过授权系统,授权可访问该分析云站点的账户 权限站点 受邀账户接受的其他账户授权给自己的站点,对于受邀账户来说称之为“权限站点”,与之相对应的是由受邀账户自己创建的站点(此时受邀账户相对于自建站点的身份是管理员账户,而非受邀账户) 功能与功能权限 功能是指
Hyperledger Composer是一种编程模型,包含建模语言和一组API,可快速定义和部署业务网络和应用程序,允许参与者发出交易来交换资产的。 Hyperledger Composer组件 你可以使用我们基于浏览器的界面(称为Hyperledger Composer Playground)体验Hyperledger Composer。Playground可作为托管版本(无需安装)或本地安装
必备材料介绍 IntelliJ IDEA 对其他 IDE 转过来的用户有特别优待,对其专门整理了非常棒的资料,还请其他 IDE 过来的用户抽时间查看,会有很大帮助: Eclipse 用户可以看:https://www.jetbrains.com/idea/help/eclipse.html NetBeans 用户可以看:https://www.jetbrains.com/idea/help/net