Проект xbd-security
Описание проекта
Это вторичная оболочка для системы безопасности на основе Spring Security. Она имеет простую и понятную конфигурацию, удобна в использовании и уже включает 90% необходимого функционала. Для использования Spring Security достаточно реализовать небольшое количество дополнительного функционала.
Архитектура программного обеспечения
Начало работы Скачайте исходный код и импортируйте его.
Конфигурация
package com.xbd.xbdframework.security.test.config;
import com.xbd.xbdframework.security.configure.AbstractWebSecurityConfigurer;
import com.xbd.xbdframework.security.configure.WebSecurityProperties;
import com.xbd.xbdframework.security.service.ResourcesLoaderService;
import com.xbd.xbdframework.security.service.UserLoaderService;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringSecurityConfig extends AbstractWebSecurityConfigurer {
@Bean
@ConfigurationProperties(prefix = "xbd.security")
@Override
public WebSecurityProperties webSecurityProperties() {
return super.webSecurityProperties();
}
@Override
protected UserLoaderService userLoaderService() {
return new UserLoaderServiceImpl();
}
@Override
public ResourcesLoaderService resourcesLoaderService() {
return new ResourcesLoaderServiceImpl();
}
}
Параметры конфигурации LoginProperties:
Параметр | Описание | Значение по умолчанию |
---|---|---|
loginProcessingUrl | Путь перехвата по умолчанию для Spring Security | /login (по умолчанию) |
loginPage | Страница входа | /login (по умолчанию) |
defaultSuccessUrl | Успешная страница входа | Нет |
defaultFailureUrl | Страница ошибки по умолчанию при неудачном входе | loginPage?type=LoginType.FAILURE |
captchaErrorUrl | Страница с ошибкой проверки капчи | loginPage?type=LoginType.CAPTCHAERROR |
otherExceptionUrl | Страница ошибок других исключений | loginPage?type=LoginType.OTHEREXCEPTION |
defaultSsoLoginUrl | Страница входа по умолчанию для единого входа | /sso/login |
AntMatchersProperties:
Параметр | Описание | Значение по умолчанию |
---|---|---|
unAuthenticateUrls | Пути, доступные без аутентификации | Нет |
webIgnoreUrls | Ресурсы, игнорируемые Spring Security | "/config/", "/css/", "/fonts/", "/img/", "/js/**" |
SessionManagementProperties:
Параметр | Описание | Значение по умолчанию |
---|---|---|
sessionInvalidUrl | Страница перенаправления при недействительной сессии | loginPage?type=LoginType.SESSIONINVALID |
sessionExpiredUrl | Страница перенаправления при истекшей сессии | loginPage?type=LoginType.SESSIONEXPIRED |
maximumSessions | Максимальное количество сеансов | 1 |
maxSessionsPreventsLogin | Блокирует ли максимальное количество сеансов последующий вход | Да |
RememberMeProperties: не описаны.
LogoutProperties:
Параметр | Описание | Значение по умолчанию |
---|---|---|
logoutUrl | Страница выхода | Нет (по умолчанию — /logout) |
logoutSuccessUrl | Страница успеха после выхода | Нет (по умолчанию — /login?logout) |
invalidateHttpSession | Сделать ли сессию недействительной | Да |
clearAuthentication | Очистить ли информацию об авторизации | Да |
Разработка
UserLoaderService: код не представлен. ``` com.xbd.xbdframework.security.service.UserLoaderService; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails;
public class UserLoaderServiceImpl implements UserLoaderService {
@Override
public UserDetails getUserByUsername(String s) {
return new User("账号", "密码", AuthorityUtils.createAuthorityList(new String[] {}));
}
@Override
public UserDetails getUserBySignature(String s) {
return new User("账号", "пароль", AuthorityUtils.createAuthorityList(new String[] {}));
}
}
package com.xbd.xbdframework.security.test.service;
import com.xbd.xbdframework.security.service.ResourcesLoaderService;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class ResourcesLoaderServiceImpl implements ResourcesLoaderService {
@Override
public Map<String, Collection<String>> loadResources() {
return new HashMap<>();
}
}
##### SpringSecurityConfig
```java
package com.xbd.xbdframework.security.test.config;
import com.xbd.xbdframework.security.configure.AbstractWebSecurityConfigurer;
import com.xbd.xbdframework.security.configure.WebSecurityProperties;
import com.xbd.xbdframework.security.service.ResourcesLoaderService;
import com.xbd.xbdframework.security.service.UserLoaderService;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringSecurityConfig extends AbstractWebSecurityConfigurer {
@Bean
@ConfigurationProperties(prefix = "xbd.security")
@Override
public WebSecurityProperties webSecurityProperties() {
return super.webSecurityProperties();
}
@Override
protected UserLoaderService userLoaderService() {
return new UserLoaderServiceImpl();
}
@Override
public ResourcesLoaderService resourcesLoaderService() {
return new ResourcesLoaderServiceImpl();
}
}
1. 密码加密方式默认为BCryptPasswordEncoder,如有需要,可覆盖
2. invalidateHttpSession属性为true时,/login?logout默认302到session失效页,为false时,可停留在/login?logout页
Примечание: в тексте запроса присутствуют фрагменты кода на языке Java.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )