У меня есть один веб-сайт, который можно назвать AutoLoginSite (http://mainsite.dev)
а другой веб-сайт, которому требуется обычная аутентификация для просмотра других страниц, позволяет называть его MainSite ( Я не могу его коснуться )
Поэтому, когда пользователь открывает URL-адрес из AutoLoginSite, он будет перенаправлен на MainSite с проверенным статусом.
Итак, я пытаюсь создать контроллер автологина в приложении AutoLoginSite с помощью Spring Boot, вот контроллер:
@RequestMapping("/login")
public void login(HttpServletResponse servletResponse) {
String loginUri = "http://mainsite.dev/authenticate";
String redirectUri = "http://mainsite.dev/my-account/cards";
String username = "customer";
String password = "c123";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
String encoding = Base64.getEncoder().encodeToString((username + ":" + password).getBytes());
HttpPost httppost = new HttpPost(loginUri);
httppost.setHeader("Authorization", "Basic " + encoding);
System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
System.out.println("Status : " + response.getStatusLine().getStatusCode());
} catch(Exception ex) {
ex.printStackTrace();
}
servletResponse.setHeader("Location", redirectUri);
servletResponse.setStatus(302);
}
Я знаю, что я делаю это неправильно, потому что аутентифицированный пользователь - это сервер AutoLoginSite, а не клиент AutoLoginSite.
Как я могу автоматически войти в систему клиента на другом веб-сайте, чтобы он мог получить доступ ко всем защищенным страницам MainSite?