我想定制SpringAuthorizationServer0.0.3上的登录页面。
如何定制?
下面是我的代码。
@EnableWebSecurity
class WebSecurityConfiguration(
val securityUserDetailService: SecurityUserDetailService,
@Qualifier(value = "oauth2authSuccessHandler")
val oauth2authSuccessHandler: AuthenticationSuccessHandler
) : WebSecurityConfigurerAdapter() {
override fun configure(http: HttpSecurity?) {
http?.run {
this
.csrf().disable()
.authorizeRequests()
.antMatchers("/login").permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin().loginPage("/login")[![enter image description here][1]][1]
.and().rememberMe().key("security_key")
.and().logout().logoutUrl("/logout").logoutSuccessUrl("/login").deleteCookies("remember-me")
// .and().oauth2Login().loginPage("/login").successHandler(oauth2authSuccessHandler)
}
}
}
@EnableWebSecurity
@Configuration(proxyBeanMethods = false)
@Import(OAuth2AuthorizationServerConfiguration::class)
class AuthorizationServerConfiguration {
@Bean
fun registeredClientRepository(): RegisteredClientRepository {
val registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
.clientId("test")
.clientSecret("secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUri("http://localhost:8080/authorized")
.scope("test")
.build()
return InMemoryRegisteredClientRepository(registeredClient)
}
@Bean
fun keyManager(): KeyManager {
return StaticKeyGeneratingKeyManager()
}
}
@Controller
class LoginController {
@GetMapping("/login")
fun loginForm(): String {
return "login"
}
}
我用下面的uri输入并登录。
http://localhost:8080/oauth2/authorize?response_type=code&client_id=test&scope=test
这是我的自定义登录页。
当我在这里登录时,
它让我进入错误页面。
在这种状态下,当我尝试使用oauth2/authorize url再次登录时,
它最终返回授权码。我不知道为什么我在我的自定义登录页上转到/出错。
请告诉我。
谢谢您!
暂无答案!
目前还没有任何答案,快来回答吧!