Моя конфигурация безопасности:
Код: Выделить всё
return https.
authorizeHttpRequests(authorize -> authorize
.requestMatchers("/", "/public/**", "/error", "/webjars/**")
.permitAll()
.requestMatchers(HttpMethod.POST, "/contact")
.permitAll()
.requestMatchers("/loggedin/**").authenticated()
).
formLogin(form -> form
.loginPage("/login").permitAll()
.failureHandler(authenticationFailed)
.successHandler(authenticationSuccessful)
).
logout(logout -> logout
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.permitAll()
.logoutSuccessUrl("/logged_out")
.logoutSuccessHandler(logoutComponent)
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID")
).
sessionManagement(session -> session
.invalidSessionUrl("/login")
.sessionFixation()
.migrateSession()
.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
.maximumSessions(1)
.maxSessionsPreventsLogin(true)
.sessionRegistry(sessionRegistry())
.expiredUrl("/logout")
).
headers(headers -> headers
.httpStrictTransportSecurity(security -> security
.includeSubDomains(true)
.maxAgeInSeconds(60 * 60 * 28)
)
.xssProtection(Customizer.withDefaults())
).
build();
Код: Выделить всё
@Override
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
String name = authentication.getName();
String password = authentication.getCredentials().toString();
if (name.equals("Test") && password.equals("Test")) {
return new UsernamePasswordAuthenticationToken(name, password, new ArrayList());
}
throw new BadCredentialsException("Failed login! Try again.");
}
К сожалению, я не могу найти никаких ресурсов о том, как реализовать вход в систему. запрос. Я создал простое окно с полями имени пользователя и пароля, но я не знаю, какое действие предпринять при нажатии входа в систему для аутентификации. Также следует ли мне отключить некоторые настройки безопасности, чтобы разрешить вход в систему из настольного приложения? Есть ли какой-нибудь ресурс
Подробнее здесь: https://stackoverflow.com/questions/784 ... -swing-app