私は古い春のブートセキュリティアプリからキークローケに移行したいと思います。下は私のセキュリティ設定です。私たちはkeycloak管理ページ上の役割とユーザーを作成する必要があり、ことが判明、しかし、私の現在のシステムが何であるかを、ユーザーと役割がある春のブートセキュリティからキークローキングに移行
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private CustomUserDetailsService customUserDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http
.authorizeRequests()
.antMatchers("/*", "/static/**", "/css/**", "/js/**", "/images/**").permitAll()
.antMatchers("/school-admin/*").hasAuthority("SCHOOL_ADMIN").anyRequest().fullyAuthenticated()
.antMatchers("/teacher/*").hasAuthority("TEACHER").anyRequest().fullyAuthenticated()
.anyRequest().authenticated().and()
.formLogin()
.loginPage("/login.html").defaultSuccessUrl("/loginSuccess.html")
.failureUrl("/login.html?error").permitAll().and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout.html")).logoutSuccessUrl("/login.html?logout");
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(customUserDetailsService).passwordEncoder(new BCryptPasswordEncoder());
}
}
は、私はすでにkeycloakをインストールして、それがポート8080.Theの問題で実行されています私のMySQL DBに。私は認証と認可のためにキークローキングにユーザーとロールを挿入したくありません。
はい私はキークローキングを開始しました。しかし、問題はすべてのユーザーの資格情報は、キークローキングではなく、私のデータベースにあります。だから私は認証と認可のために私のdbとキークローキングのチェックを行うことができますか? – boycod3
あなたはカスタムプロバイダを書くことができますが、私はこれまでに自分でそれをしていませんが、可能でなければなりません。いくつかの情報についてはhttps://keycloak.gitbooks.io/server-adminstration-guide/content/topics/user-federation/custom.htmlを参照してください。ちょっとgoogleしてください。一般的に実装する必要があるインターフェースが存在し、この実装はDBに送られ、そこで与えられたユーザーデータを照会します。インタフェースで必要とされるすべてのデータを提供できるかどうかは疑問ですが、それを確認する必要があります。 – hecko84
私はちょうどJPAに接続されたいくつかのDBを使用してより良い例を見つけました。これもまた大きなメリットです。このFDI機能をキークローキングで使用すると、複数のプロバイダを接続して使用することができます。 – hecko84