Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用oracle凭据的Spring安全性(数据源不来自属性)_Spring_Oracle_Spring Mvc_Spring Security_Database Connection - Fatal编程技术网

使用oracle凭据的Spring安全性(数据源不来自属性)

使用oracle凭据的Spring安全性(数据源不来自属性),spring,oracle,spring-mvc,spring-security,database-connection,Spring,Oracle,Spring Mvc,Spring Security,Database Connection,我正在试图找到一个解决方案,允许用户使用他们的数据库凭据登录 此时,我正在连接一个“通用数据库用户”,然后使用一个带有用户名和密码的用户表。我想删除这个表,直接用Oracle验证用户名和密码 编辑:解释 用户通过保存在数据库表中的用户/密码进行连接。但是,客户端希望使用Oracle用户名访问应用程序。换句话说,我当前的Spring配置是使用root用户(root)的用户名/密码建立的。通过该方案,我可以访问数据库中的数据。我根据数据库中的用户表对用户/密码进行身份验证,以将用户登录到应用程序。然

我正在试图找到一个解决方案,允许用户使用他们的数据库凭据登录

此时,我正在连接一个“通用数据库用户”,然后使用一个带有用户名和密码的用户表。我想删除这个表,直接用Oracle验证用户名和密码

编辑:解释

用户通过保存在数据库表中的用户/密码进行连接。但是,客户端希望使用Oracle用户名访问应用程序。换句话说,我当前的Spring配置是使用root用户(root)的用户名/密码建立的。通过该方案,我可以访问数据库中的数据。我根据数据库中的用户表对用户/密码进行身份验证,以将用户登录到应用程序。然而,我需要一种预验证,允许我配置动态数据源或不配置数据源,以便用户可以使用外部用户名和密码(在我的情况下,这将是Oracle的用户名和密码)进入程序

如果没有Spring配置,我可以随时连接到数据库,因为每次需要连接时,我都必须使用用户名和密码登录。如何修改静态Spring数据源(由属性文件配置),以便在用户首次登录平台并保存数据源时能够对其进行配置

可能吗

这是我与数据库上的表的当前连接:

@Autowired
protected void configureGlobal(AuthenticationManagerBuilder registry) throws Exception, BadCredentialsException {
     registry
    .jdbcAuthentication()
    **.dataSource(dataSource)**
    .usersByUsernameQuery("select COD as principal, PASSWORD as credentials, 1 "
            + "from USUARIOS where COD = ?")
    .authoritiesByUsernameQuery("select ROLES_POR_USUARIO.COD, ROLES.NOMBRE "
                + "from ROLES_POR_USUARIO inner join ROLES "
                + "on ROLES.COD = ROLES_POR_USUARIO.COD "
                + "where ROLES_POR_USUARIO.COD = ?");
 }
静态数据源:

db.driver=oracle.jdbc.OracleDriver
db.url=my_oracle_url
db.username=database_user
db.password=database_user_pass
我想连接数据库中存储的尽可能多的db.username/db.password凭据

谢谢大家!

Jasig CAS使用。它尝试使用提供的用户名和密码连接到数据库,如果这样做有效,它将认为用户已通过身份验证


因此,您可以使用CAS(Spring Security可以与之集成),或者在应用程序中实现类似于BindModeSearchDatabaseAuthenticationHandler的功能

我不能用CAS。我的体系结构只有Oracle Web浏览器(应用程序)