我正在设置一个使用Kerberos(SSO)来对Windows网络内部的用户进行身份验证的授权服务器。并且,它使用基本身份验证来对网络外部的用户进行身份验证。
当我尝试使用网络内部的计算机访问/oauth/authorize
端点时,kerberos SSO可以完美运行而无需询问我用户名和密码。但是,当我尝试使用网络外部的计算机访问同一端点时,浏览器登录弹出窗口会出现,并隐藏我的自定义登录页面,直到单击“取消”为止。
我想在访问/oauth/authorize
端点时禁用登录弹出窗口。
我的配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.exceptionHandling()
.authenticationEntryPoint(spnegoEntryPoint())
.and()
.authorizeRequests()
.antMatchers("/", "/home", "/check", "/favicon.ico").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login").permitAll()
.and()
.logout()
.permitAll()
.and()
.addFilterBefore(
spnegoAuthenticationProcessingFilter(authenticationManagerBean()),
BasicAuthenticationFilter.class);
}
@Bean
public SpnegoEntryPoint spnegoEntryPoint() {
return new SpnegoEntryPoint("/login");
}