使用 spring-security: WebSecurityConfigurerAdapter: auth.jdbcAuthentication().usersByUsernameQuery:查询字符串应该是什么样子?

2024-02-25

使用带有两个表的 postgresql db 来验证登录...(用户和权限)

CREATE TABLE users
(
   username character(50) NOT NULL,
   password character(50) NOT NULL,
   enabled boolean NOT NULL,
   CONSTRAINT users_pkey PRIMARY KEY (username)
)

CREATE TABLE authorities
(
    username character(50) NOT NULL,
    authority character(50) NOT NULL,
    CONSTRAINT fk_authorities_users FOREIGN KEY (username)
       REFERENCES users (username) MATCH SIMPLE
       ON UPDATE NO ACTION ON DELETE NO ACTION
)

当我尝试执行以下操作时,我做错了什么?

registerAuthentication(AuthenticationManagerBuilder auth){

auth.
      jdbcAuthentication()
            .dataSource(dataSource)
            .usersByUsernameQuery("select username,password,enabled 
                 from users where username = ?")
            .authoritiesByUsernameQuery("select username,authority from 
                 authorities where username = ?");

}

Thanks


尝试这个:

auth.jdbcAuthentication()                
    .dataSource(dataSource)                
    .usersByUsernameQuery("select username as principal, password as credentials, true from users where username = ?")               
    .authoritiesByUsernameQuery("select username as principal, authority as role from authorities where username = ?")                
    .rolePrefix("ROLE_");

也许这个源代码可以帮助你:https://github.com/spring-projects/spring-security-javaconfig/blob/master/spring-security-javaconfig/src/test/groovy/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.groovy https://github.com/spring-projects/spring-security-javaconfig/blob/master/spring-security-javaconfig/src/test/groovy/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.groovy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 spring-security: WebSecurityConfigurerAdapter: auth.jdbcAuthentication().usersByUsernameQuery:查询字符串应该是什么样子? 的相关文章

随机推荐

  • 在 MySQL 条件中使用子字符串

    我正在尝试获取一个人名字的第一个字母等于的所有实例P 这是我想出的 它不会返回任何内容 sql SELECT FROM people WHERE SUBSTRING FirstName 0 1 P 建议 您的表达式不起作用的原因是 subs
  • Android 到 servlet 图片上传保存在服务器上

    我创建了一个 servlet 它接受来自 android 应用程序的图像 我在 servlet 上接收字节 但是 我希望能够使用服务器上的原始名称保存该图像 我怎么做 我不想使用 apache commons 还有其他适合我的解决方案吗 t
  • 是否可以在 ASPX、C# 和 JavaScript 之间共享一个包含字符串的文件?

    我希望将项目中使用的所有字符串外部化到一个文件中 并能够在 aspx C 代码后面和客户端的 JavaScript 中使用它 我想这样做的原因是因为许多字符串是共享的 即在两个地方相同 是否可以 有没有更好的办法 JSON http www
  • Python 实现赋值链的问题

    我正在为一个教育 Python 库编写一个链表 以下是重要的代码片段 class Element object def init self value next self value value self next next class L
  • git 命令不尊重 io 重定向

    例如 一些 git 命令需要注意 io 重定向git bundle 我怀疑这与使用的底层 管道 命令有关 有一个很好的教程IO重定向 http tldp org LDP abs html io redirection html 以及与以下相
  • 如何禁用 LaTeX 列表项的缩进? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 默认情况下 枚举 环境相对于当前环境缩进 如何禁用此缩进 以便三个项目的枚举环境产生与以下代码段相同的输出 documentclass article
  • 使用 Composer 的自动加载

    我一直在网上浏览 在这个问题上没有运气 我正在使用作曲家的自动加载功能 并在我的composer json autoload psr 0 AppName src 但我需要在比供应商文件夹更高的级别自动加载 做这样的事情是行不通的 autol
  • NoReverseMatch:反转“已删除”,没有找到任何参数。 - 姜戈

    我是 Django 的新面孔 所以如果我的问题是愚蠢的 请考虑一下 所以我一直在练习 Django 目前正在制作 CRUD 但是我遇到了 NoReverseMatch 的问题 我在 stackoverflow 中查看了答案 但仍然找不到出错
  • 为什么Python在某些情况下需要手动设置LC_CTYPE

    我正在尝试使用 Django 的管理文档 我跟着this https docs djangoproject com en dev ref contrib admin admindocs 教程并安装docutils 安装后我通过以下方式运行
  • 通过 Android Intent 发送链接到 Whatsapp

    我正在尝试从我的 Android 应用程序向 Whatsapp 或短信等聊天应用程序发送带有链接的短信 这些应用程序不接受 text html 类型作为 Intent 类型 当我使用 text plain 类型时 我的消息仅包含主题而没有消
  • Express.js 和 connect-mongo 会话持续时间

    我使用express session和connect mongo来存储用户会话 我将 cookie maxAge 设置为从现在起的 2 周 但我想要的是 如果用户在这 2 周内处于活动状态 则会话会延长到另外 2 周 这样当他不活动 2 周
  • 如何反序列化 JSON,其中值的类型在另一个字段中指定?

    我不确定应该如何尝试反序列化一些如下所示的 JSON columns name stringColumn type string name DateColumn type date name NumberColumn type number
  • 什么时候在 Ruby 中使用 Singleton 类是明智的? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 滥用模式匹配

    我来自 C 发现自己爱上了 F 模式匹配语法 因为它比 C 更简单switch并且更有用 我喜欢尽可能多地使用它 以像本例这样的奇怪方式使用它是否会带来性能或任何其他缺点 match 0 with when a b a gt b 在这个特定
  • git-am 未正确读取配置

    看起来git am continue没有正确读取我的配置 git am continue Applying fatal empty ident name for lt gt notallowed 我尝试遵循中的建议git post rece
  • 查找总和等于 2020 的 n 个值

    我有一个向量Vec具有这些值 1721 979 366 299 675 1456 我正在努力寻找一种方法来获得以下组合n 我最初想做的是n 2 值的总和等于 2020 年 在示例中 很容易将其视为 1721 和 299 2020 年之和 但
  • SQLITE - 设置新数据库的版本

    我已经使用此示例创建了一个数据库 我在全新安装时复制该数据库 http www reigndesign com blog using your own sqlite database in android applications http
  • Python 3 和 PyQt 4 建议

    的组合是Python 3 http docs python org 3 1 and PyQt 4 http www riverbankcomputing co uk software pyqt intro受到推崇的 还有其他选择吗 我不明白
  • php中根据文件夹状态进行文件夹监控并触发事件

    当事件发生时 有一个文件夹 其中 xml 文件在任何特定时间都被复制 我想要一种 php 方式来检查文件夹的状态 当 xml 文件到达时 将触发一个事件 例如调用 xml 解析器 那么 在 php 中 监视文件夹并根据其状态触发事件的最佳方
  • 使用 spring-security: WebSecurityConfigurerAdapter: auth.jdbcAuthentication().usersByUsernameQuery:查询字符串应该是什么样子?

    使用带有两个表的 postgresql db 来验证登录 用户和权限 CREATE TABLE users username character 50 NOT NULL password character 50 NOT NULL enab