继续我之前的问题。我正在研究 CAS 5,以根据我的需要进行修改。现在在CAS 教程的帮助下,我已经完成了自定义身份验证。现在我添加了以下依赖项以pom.xml通过以下链接连接到数据库。
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
并在中添加了数据库身份验证属性 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
Run Code Online (Sandbox Code Playgroud)
但它不起作用意味着得到
类型 'org.apereo.cas.configuration.model.support.jdbc.QueryJdbcAuthenticationProperties' 没有属性 'url'
我在这里错过了什么吗?任何人请帮助我。
更新:
我检查了来源 QueryJdbcAuthenticationProperties
@RequiredProperty
private String sql;
Run Code Online (Sandbox Code Playgroud)
和 AbstractJpaProperties
private String dialect;
private String ddlAuto;
@RequiredProperty
private String driverClass;
@RequiredProperty
private String url;
@RequiredProperty
private String user;
@RequiredProperty
private String password;
Run Code Online (Sandbox Code Playgroud)
我在cas-server-core-api-configuration-model-5.3.2.jar文件中发现了相同的两个类,而这两个在任何其他包和 jar 文件中都找不到。
这里有什么问题。我无法识别它。
如何知道这些属性 (
cas.authn.jdbc.query) 是在哪里定义的?
我认为QueryJdbcAuthenticationProperties在定义这些数据库属性时已经创建了对象与子类。
我创建了一个使用 Keycloak 12.0.1 作为身份提供程序的应用程序。\n单点登录工作正常,“本地注销”也很好。
\n问题是单点退出。
\n我在网上搜索了文档和问题,但一无所获。\n下面的日志描述了三种失败的情况。
\n最后的问题是:
\nkeycloakCsrfRequestMatcher() 方法将库拥有的端点(如“k_logout”)从 csrf 保护中释放,但不是我自己的 url“/sso/logout”。也许可以编写我自己的匹配器,但这超出了我作为开发人员的经验。
\nimport java.util.Arrays;\nimport java.util.List;\n\nimport javax.annotation.PostConstruct;\n\nimport org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;\nimport org.keycloak.adapters.springsecurity.KeycloakSecurityComponents;\nimport org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;\nimport org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;\nimport org.keycloak.adapters.springsecurity.filter.KeycloakSecurityContextRequestFilter;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.context.EnvironmentAware;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.ComponentScan;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.context.annotation.Profile;\nimport org.springframework.core.env.Environment;\nimport org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;\nimport org.springframework.security.core.session.SessionRegistryImpl;\nimport org.springframework.security.web.authentication.logout.LogoutFilter;\nimport org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;\nimport org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;\nimport org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter;\n\n@Profile("KC")\n@Configuration\n@EnableWebSecurity\n@ComponentScan(basePackageClasses = …Run Code Online (Sandbox Code Playgroud)