私はこの時点で私の春のセキュリティ(バージョン4)の問題に直面しています。ここでorg.springframework.security.authentication.InternalAuthenticationServiceException:JDBC接続を取得できませんでした
org.springframework.security.authentication.InternalAuthenticationServiceException: Could not get JDBC Connection
はのAppConfigクラスである:ここで
@EnableWebMvc
@Configuration
@ComponentScan({ "controller" })
@Import({ SecurityConfig.class })
public class AppConfig {
@Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
System.out.println("-------- MySQL JDBC Connection Testing ------------");
System.out.println("JDBC Driver Found");
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
driverManagerDataSource.setUrl("jdbc:mysql://localhost:3306/QSQL");
driverManagerDataSource.setUsername("root");
driverManagerDataSource.setPassword("password");
return driverManagerDataSource;
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/Pages/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
は私のSecurityConfigクラスです:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
DataSource dataSource;
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
System.out.println("begin Auth Process");
auth.jdbcAuthentication().dataSource(dataSource)
.usersByUsernameQuery(
"select username,password, enabled from QSQL.users where username=?")
.authoritiesByUsernameQuery(
"select username, role from QSQL.user_roles where username=?");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
.and()
.formLogin().loginPage("/login").failureUrl("/login?error")
.usernameParameter("username").passwordParameter("password")
.and()
.logout().logoutSuccessUrl("/login?logout")
.and()
.exceptionHandling().accessDeniedPage("/403")
.and()
.csrf();
}
}
私は、次のと一緒に、上記のエラーを取得していますが:
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
Althoug h SQLエクスプローラプラグインを使用してデータベースに接続できます。
ありがとうございました。
私は春に4.2.6、春には4.1.0を使用しています...私は春のフレームワークを4.3.0にアップデートしようとします。それが修正されるかどうかわかります。 – nader
実際には、MySQL 6.0.2のバグに関連するエラーが見つかりました......ここでは、サーバーのタイムゾーン値 'EDT'は認識されないか、複数のタイムゾーンを表します。タイムゾーンのサポートを利用する場合は、サーバーまたはJDBCドライバ(serverTimezone構成プロパティ経由)を構成して、より詳細なタイムゾーン値を使用する必要があります。 – nader