我想有一个SSO CAS认证,我已经按照Bealdung的教程(https://www.baeldung.com/spring-security-cas-sso第4部分)的说明,但当我作为Spring启动应用程序运行时,我有这个错误
SecurityConfig中构造函数的参数0需要找不到类型为“org.springframework.security.cas.authentication.CasAuthenticationProvider”的bean。
行动:
请考虑在您的配置中定义一个“org . spring framework . security . cas . authentication provider”类型的bean。
我在这里看到了同样的问题,但是在其他spring的导入中,我试图添加@Bean注释,但是没有更多结果
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private AuthenticationProvider authenticationProvider;
private AuthenticationEntryPoint authenticationEntryPoint;
private SingleSignOutFilter singleSignOutFilter;
private LogoutFilter logoutFilter;
@Autowired
public SecurityConfig(CasAuthenticationProvider casAuthenticationProvider, AuthenticationEntryPoint eP, LogoutFilter lF, SingleSignOutFilter ssF) {
this.authenticationProvider = casAuthenticationProvider;
this.authenticationEntryPoint = eP;
this.logoutFilter = lF;
this.singleSignOutFilter = ssF;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.regexMatchers("/secured.*", "/login")
.authenticated()
.and()
.authorizeRequests()
.regexMatchers("/")
.permitAll()
.and()
.httpBasic()
.authenticationEntryPoint(authenticationEntryPoint);
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authenticationProvider);
}
@Override
protected AuthenticationManager authenticationManager() throws Exception {
return new ProviderManager(Arrays.asList(authenticationProvider));
}
@Bean
public CasAuthenticationFilter casAuthenticationFilter(ServiceProperties sP) throws Exception {
CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setServiceProperties(sP);
filter.setAuthenticationManager(authenticationManager());
return filter;
}
}
它应该重定向到安全登录页面(cas服务器登录页面),但现在我无法启动该应用程序。
感谢您的帮助
编辑:我的CasAuthenticationProvider豆子在我的CasSecuredAppApplication类中,就像tuto说的那样
public class CasSecuredAppApplication {
@Bean
public ServiceProperties serviceProperties() {
ServiceProperties serviceProperties = new ServiceProperties();
serviceProperties.setService("http://xxx/");
serviceProperties.setSendRenew(false);
return serviceProperties;
}
@Bean
@Primary
public AuthenticationEntryPoint authenticationEntryPoint(
ServiceProperties sP) {
CasAuthenticationEntryPoint entryPoint
= new CasAuthenticationEntryPoint();
entryPoint.setLoginUrl("https://xxx/cas/login");
entryPoint.setServiceProperties(sP);
return entryPoint;
}
@Bean
public TicketValidator ticketValidator() {
return new Cas30ServiceTicketValidator(
"https:///cas");
}
@Bean
public CasAuthenticationProvider casAuthenticationProvider() {
CasAuthenticationProvider provider = new CasAuthenticationProvider();
provider.setServiceProperties(serviceProperties());
provider.setTicketValidator(ticketValidator());
provider.setUserDetailsService(
s -> new User("casuser", "Mellon", true, true, true, true,
AuthorityUtils.createAuthorityList("ROLE_ADMIN")));
provider.setKey("CAS_PROVIDER_LOCALHOST_8080");
return provider;
}
}
应该可以通过我的SecurityConfig class no。
您的类< code > CasSecuredAppApplication {不是配置类。
如果它是您的主类,则在类级别添加<code>@SpringBootApplication
在此处输入图像描述 在此处输入图像描述 我仍然不知道该怎么办(我在UserRepository上尝试了Repository注释-错误是一样的)。错误消息:`启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2022-03-14 09:04:54.626错误7236---[main]o.s.b.d.LoggingFailureAnalysisR
我正在创建一个,其中任何客户端都可以提交请求,这些请求可以是、、、。 但是在创建这个应用程序时,我遇到了以下错误: 我的应用程序的结构是: 我尝试用、、注释,但仍然得到相同的错误。 我甚至从这些答案中尝试了解决方案: (1)构造函数的参数0需要一个类型为'java.lang.String'的bean,但找不到该bean 但我仍然无法解决我的问题。
我不确定我的代码有什么问题。我试着学习Spring Boot WebFlux。但我无法运行应用程序,因为我得到以下错误: com.thomsoncodes.todo.controller.ToDoController中构造函数的参数0需要一个类型为“com.thomsoncodes.todo.repository.ToDoRespository”的bean,但找不到该bean 疲惫@Autowir
运行应用程序后控制台显示的错误粘贴在下面 套餐下有3个等级 bduckapp1application.java<-SpringBoot应用程序 bducktrigger.java<-restcontrol oss.java<-data类 pom.xml 我尝试了各种stackoverflow文章中针对类似错误提到的所有解决方案。建议将这些类移动到与类相同的文件夹中,或者包含具有它属性的包。没有一个
我正在用spring Boot2.x应用程序处理spring batch,实际上它的现有代码我是从Git签出的。在运行应用程序时,它失败了,因为下面的错误只对我来说,同样的代码是为其他人工作的。 我已经检查了下面 null
我有两个项目: null 提前感谢您的帮助。