我目前正在实施Authorization_Code类型的OAuth2流,以便在我的网站上进行单点登录(SSO)。
这是我启用它的代码。
@Override
protected void configure(final HttpSecurity http) throws Exception {
// @formatter:off
http.authorizeRequests()
.antMatchers("/login", "/authorize", "/error")
.permitAll()
.anyRequest()
.authenticated()
.and().formLogin().loginPage("https://sso.mywebsite.com").loginProcessingUrl("/perform_login")
.defaultSuccessUrl("/success",true)
.failureUrl("/error").permitAll()
.and()
.csrf()
.disable();
// @formatter:on
}
我的关切如下所述。
要发出登录请求(使用用户名和密码),sso.mywebsite.com应该向我的oAuth服务-超文本传输协议发出POST请求://oauth/perform_login? username=USERNAME
我用Postman试过了,它有效。然而,像上面在查询参数中发送普通用户名和密码不是一个安全问题吗?我认为在uri(查询参数)中公开用户凭证可能会被各种网络嗅探工具捕获。
有没有一种方法可以用不同的方法来做到这一点?