没有使用数据库的角色库的 Spring Security

Posted

技术标签:

【中文标题】没有使用数据库的角色库的 Spring Security【英文标题】:Spring Security Without Role-Base Using Database 【发布时间】:2013-06-12 10:30:13 【问题描述】:

我想实现 Spring Security(身份验证和授权)我用谷歌搜索它和任何 MKYoung Spring Security Example,我只想区分经过身份验证的用户和匿名用户之间的 URL,我不想使用任何基于角色的授权。

任何已注册并登录的用户,我想授权他们访问所有 URL,对于匿名用户,我希望他们访问登录和注册页面。 谢谢

【问题讨论】:

问题是什么?您不必在 Spring 中使用基于角色的访问控制(在 Spring 参考手册中搜索 isAuthenticated()IS_AUTHENTICATED_FULLY)。 感谢您的回复,去试试看。 很好...检查 Jean-Philippe 的答案...我懒得像他那样写一个实际的答案:D. 【参考方案1】:

你有没有试过在spring security xml配置文件中这样做:

<security:http auto-config="true" use-expressions="true">
    <security:intercept-url pattern="/login" access="permitAll" />
    <security:intercept-url pattern="/registration" access="permitAll" />
    <security:intercept-url pattern="/**" access="isAuthenticated()" />
     ...
</security:http>

【讨论】:

不,我会尝试,这里我有另一个困惑 MKYoung 使用 引用数据源但对于我的情况,我使用的是 我的休眠 再发一个关于数据源的问题,我会举例回答。【参考方案2】:

您可以通过使用查询来实现:

authorities-by-username-query="select username, 'default' from users where username=?"

【讨论】:

以上是关于没有使用数据库的角色库的 Spring Security的主要内容,如果未能解决你的问题,请参考以下文章

数据库中没有用户/角色的 Grails spring-security-ldap

Spring Boot 中 JPA 存储库的“没有限定类型的 bean”

Grails Spring Security 查询没有特定角色的用户

没有角色和权限的 Web 服务的 Spring Security [关闭]

企业实践用户邮箱导入/导出(第1部分)

spring security 没有根据角色过滤对资源的访问