gpt4 book ai didi

spring - CAS 数据库身份验证不起作用

转载 作者:行者123 更新时间:2023-12-02 17:21:09 25 4
gpt4 key购买 nike

继续我之前的question 。我正在研究 CAS 5,根据我的需要进行修改。在CAS tutorial的帮助下现在我已经完成了定制的身份验证。现在,我已将以下依赖项添加到 pom.xml 中,以按照 link 连接到数据库。

<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>

并在application.properties中添加了数据库身份验证属性

cas.authn.jdbc.query[0].sql=some query
cas.authn.jdbc.query[0].url=jdbc:postgresql://127.0.0.1/dbcas
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.PostgreSQLDialect
cas.authn.jdbc.query[0].user=readonly
cas.authn.jdbc.query[0].password=readonly
cas.authn.jdbc.query[0].ddlAuto=none
cas.authn.jdbc.query[0].driverClass=org.postgresql.Driver

但它不起作用意味着得到

Type 'org.apereo.cas.configuration.model.support.jdbc.QueryJdbcAuthenticationProperties' has no property 'url'

我在这里错过了什么吗?请任何人帮助我。

更新:

我已经检查了QueryJdbcAuthenticationProperties的来源

@RequiredProperty
private String sql;

AbstractJpaProperties

private String dialect;
private String ddlAuto;
@RequiredProperty
private String driverClass;
@RequiredProperty
private String url;
@RequiredProperty
private String user;
@RequiredProperty
private String password;

我在 cas-server-core-api-configuration-model-5.3.2.jar 文件中找到了相同的两个类,并且在任何其他包和 jar 文件中都找不到这两个类。

这里出了什么问题。我无法识别它。

How to know where these properties (cas.authn.jdbc.query) has been defined?

我认为在定义这些数据库属性时已经创建了 w.r.t 子类 QueryJdbcAuthenticationProperties 对象。

最佳答案

当您查看您描述的类时,i。 e. AbstractJpaPropertiesQueryJdbcAuthenticationProperties,您将在它们的开头看到类似这样的内容:

// ...
import lombok.Getter;
import lombok.Setter;

// ...
@Getter
@Setter
public abstract class AbstractJpaProperties implements Serializable {

// ...
@RequiredProperty
private String url = "jdbc:hsqldb:mem:cas-hsql-database";

并且字段没有 getter 和 setter。这意味着 Lombok负责在编译时生成它们。如果您直接从 cas-server-core-api-configuration-model-5.3.2.jar 打开该类,您的 IDE 应该会在类大纲中(在已编译的类中)显示 getter 和 setter仅)。

那么也许您尝试自己构建这些类(或整个 CAS?),而构建路径中没有 Lombok 库?因此,您会收到错误:

Type 'org.apereo.cas.configuration.model.support.jdbc.QueryJdbcAuthenticationProperties' has no property 'url'

如果是这样,我建议您宁愿使用 CAS WAR Overlay Installation相反 - 对于常见的 CAS 使用来说通常更容易。如果您仍然需要接触这些类,则需要按照我上面提到的方式设置 Lombok。

最后,正如 Karan 所写,您可能还需要添加对 PostgreSQL 驱动程序的适当依赖项,这样当您的应用程序进一步执行时,您就不会收到 NoClassDefFoundError 或类似错误。

关于spring - CAS 数据库身份验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59299110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com