Я настраиваю безопасность пружины, используя OAuth2.0, используя приложение весенней загрузки.Страница аутентификации приходит с уже авторизованным пользователем Google, но после выбора она снова загружает ту же страницу аутентификации.
HomeController.java
import java.security.Principal;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
public class HomeController {
@RequestMapping("/")
public ModelAndView home() {
System.out.println("inside home");
ModelAndView model = new ModelAndView("home");
return model;
}
@RequestMapping("/login")
public ModelAndView loginPage() {
System.out.println("inside login");
ModelAndView model = new ModelAndView("login");
return model;
}
@RequestMapping("user")
@ResponseBody
public Principal user(Principal principal) {
System.out.println("inside userrrrrrrrr");
return principal;
}
}
AppSecurityConfig.java
@Configuration
@EnableWebSecurity
@EnableOAuth2Sso
public class AppSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
// System.out.println(httpSecurity.);
try {
System.out.println("inside configure");
httpSecurity
.csrf().disable()
.authorizeRequests().antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().disable();
}catch(Exception e) {
System.err.println("exception caught:"+e);
}
}
}
Это мой файл application.properties для конфигурации OAuth: я изменяю идентификатор клиента и секретный код клиента.
security.oauth2.client.client-id = 434559791042-642qk4agcs32g1rajsssss62ilrd86s4.apps.googleusercontent.com
security.oauth2.client.client-secret = 1l4jqw7lBailpuVgWobvcxwo
security.oauth2.client.access-token-uri = https://www.googleapis.com/oauth2/v3/token
security.oauth2.client.user-authorization-uri = https://accounts.google.com/o/oauth2/auth
security.oauth2.client.tokenName = oauth_token
security.oauth2.client.authenticationScheme = query
security.oauth2.client.clientAuthenticationScheme = form
security.oauth2.client.scope = profile email
security.oauth2.resource.user-info-uri = https://www.googleapis.com/userinfo/v2/me
security.oauth2.resource.preferTokenInfo = false
в моем приложении Google API, которое я дал ниже, перенаправляет.
Авторизованные источники JavaScript: http://localhost:8080 Авторизованные URI перенаправления: http://localhost:8080/login
Фрейм аутентификации Google приходит с моей уже авторизованной учетной записью, но когда я выбираю его, он снова показываеттот же кадр аутентификации.После аутентификации он должен быть перенаправлен на родное приложение.