如何在不使用“权限”的情况下使用Spring Security的JDBC身份验证?

马可

我对当局有疑问。

原因:PreparedStatementCallback; 错误的SQL语法[从用户名=?处选择用户名,授权机构];嵌套的异常是org.postgresql.util.PSQLException:错误:关系“权限”不存在位置:32

我不想实现授权,但是不知道如何在Spring的JavaConfig中禁用它。

@Override
protected void configure(AuthenticationManagerBuilder auth)
        throws Exception {
    auth.jdbcAuthentication()
            .dataSource(dataSource)
            .usersByUsernameQuery(
                    "select username,password,'true' as enabled from users where username=?")
            .passwordEncoder(new ShaPasswordEncoder());
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().anyRequest().authenticated().and().formLogin().and().httpBasic();
}
另一个节点

据我所知,您无法在Spring Security中使用JavaConfig停用授权机制,但可以覆盖用于获取授权数据的查询,以达到相同的效果。

当使用Spring Security的JDBC身份验证时,它将对数据库方案进行某些假设以检索身份验证数据。您已经通过调用覆盖了示例中用于获取用户数据的查询usersByUsernameQuery()

我还通过覆盖查询来获取权限数据来有效地禁用了整个权限检查,如下所示(如Craig Walls在“ Spring in Action”中所述):

@Override
public void configure(AuthenticationManagerBuilder authenticationManagerBuilder)
        throws Exception {

    authenticationManagerBuilder.jdbcAuthentication().dataSource(dataSource)
            .usersByUsernameQuery(
                    "SELECT username, password, enabled FROM users WHERE username=?")
            .authoritiesByUsernameQuery(
                    "SELECT username, 'ROLE_USER' FROM users WHERE username=?");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Security JDBC身份验证登录用户错误

如何在不使用Cognito的情况下对dynamoDB进行身份验证?

如何在不使用ASP控件的情况下对登录表单进行身份验证

如何在Spring Security中同时配置内存身份验证和jdbc身份验证

使用PostgreSQL时Spring Security JDBC身份验证默认架构错误

使用Spring Security进行身份验证

使用RestTemplate的Spring Security身份验证

使用UserDetailsService的Spring Security身份验证

如何在不使用任务侦听器的情况下获取Firebase身份验证令牌?

Ember简单身份验证,如何在不使用私有API的情况下更新商店?

Rails:如何在不使用has_secure_password的情况下编写自己的身份验证

使用Jdbc领域的Zeppelin身份验证

Spring JDBC身份验证与LoadUserByName的区别

如何在不使用身份验证系统的情况下在django中更改密码?

Spring Security中的链式身份验证

身份验证失败的Spring Security Wildfly

Spring Security Rest Basic身份验证

如何在不使用密码提示的情况下不使用公共密钥身份验证而进行rsync?

如何在不进行身份验证的情况下使用python从telnet获取数据

如何在没有令牌身份验证的情况下使用 jupyter notebook?

在不使用Ember-cli的情况下使用简单的身份验证

是否可以在不使用IIS的情况下使用Windows集成身份验证?

如何在Spring Security中关闭Websocket的身份验证?

使用Spring Security + Spring数据+ MongoDB进行身份验证

Azure 自动化 - 如何在不使用资源管理器帐户的情况下进行身份验证

如何在不使用Auth0通用登录的情况下配置auth0身份验证/授权?

如何防止 Firestore 中的用户在不使用 Firebase 身份验证的情况下创建和阅读多个文档?

在不使用 Django rest 框架的情况下对用户进行身份验证?

Firebase 身份验证:在不使用“sendPasswordResetEmail”的情况下更新(未登录用户)密码