当前位置: 首页 > 知识库问答 >
问题:

Spring Group Authories,如何使用默认查询激活

杨无尘
2023-03-14

我一直在用Spring security尝试不同的东西来学习。我建立了一个具有基本结构的授权,它有“用户”表和“权限”表。因此,我的身份验证提供者如下所示。

    <authentication-provider>
        <password-encoder hash='md5'>
            <salt-source user-property="username"/>
        </password-encoder> 
        <jdbc-user-service data-source-ref="dataSource"/>
    </authentication-provider>

通过这种方式,我不会指定查询来获取用户详细信息,因为我使用默认的数据库模式。因此,虽然我没有使用“authorities by username query”属性,但Spring使用的是默认查询(“select username,authority from authorities where username=?”和“选择用户名、密码,从用户名=?”的用户启用)所以事情进展顺利。

现在我想尝试一下权威团体。所以我根据模式创建表。我的问题是如何激活团体权限?JdbcDaoImpl的API文档称,要使用“enableGroups”属性来启用“基于组的权限”。但“以团体为基础的权威机构”没有这样的属性。由于Spring有默认查询,我认为没有必要显式地给出它。

有人能帮我启用基于组的权限和默认查询吗。

共有1个答案

戚同
2023-03-14

不幸的是,jdbc用户服务不提供对enableGroups属性的访问。因此,您必须使用spring的bean名称空间手动配置这个bean。我想你可以试试这样:

<authentication-provider user-service-ref="jdbcDaoImpl">
    <password-encoder hash='md5'>
        <salt-source user-property="username"/>
    </password-encoder> 
</authentication-provider>


<beans:bean id="jdbcDaoImpl" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
    <property name="enableGroups" value="true" />
    <property name="enableAuthorities" value="false" />
    <property name="dataSource" ref="dataSource" />
</beans:bean>    
 类似资料:
  • 问题内容: 我正在使用Hibernate对数据库进行一些大查询,有时会遇到超时问题。我想避免在每个或上手动设置超时。 我可以为Hibernate配置提供任何属性,为我运行的所有查询设置可接受的默认值吗? 如果没有,如何在Hibernate查询上设置默认超时值? 问题答案: JPA 2定义了 javax.persistence.query.timeout 提示以指定默认超时(以毫秒为单位)。Hibe

  • 当使用注释()对带有自定义键(如name)的存储库时,会遇到在每个连续请求上运行额外的id字段查询的问题。 请参见下面的存储库代码:

  • 我有一个apikey“令牌”,它必须在每个请求中作为查询参数提供。我如何设置翻新,以便始终在请求中包含此查询参数? 我当前将内标识作为默认参数提供: 但是由于我知道每个请求都需要相同的令牌,所以在我创建的每个请求函数中必须提供它作为默认参数,这感觉是多余的。我如何设置reverfit来用默认的查询参数修饰每个传出的请求? 这是我如何构建reverfit2实例的: 我认为在调用.build()之前,

  • 例如: 是否有一种方法可以指定默认情况下总是添加的所有条件,而不在代码本身中提及它?在Hibernate core中有一个注释,但它不能用于mongo文档。

  • 我安装了php5.6.6作为apache 2.4模块。 当加载带有 因此,正如文档所建议的,我编辑了httpd.conf指向php.ini配置文件(在C:\php56中)。我还添加了C:\php56到PATH和PHPRC环境变量。 由于我在这个文件夹中没有任何php.ini文件,我复制并重命名了“php.ini生产”文件,并编辑了扩展路径。 当我再次显示页面时,它将保持空白。。。下面是“php--

  • 问题内容: 我要对此文件执行XPath查询(显示的摘录): 这是我正在使用的代码的摘要: 我面临的问题是,在XPath查询中引用默认名称空间时,不会调用getNamespaceURI方法来解决它。例如,此查询不提取任何内容: 现在,我尝试通过用假前缀替换来“诱骗”解析器,然后相应地编写方法(以便在遇到问题时返回)。在这种情况下,将调用,但是XPath表达式求值的结果始终是一个空字符串。 如果我从文