1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xbd521-xbd-security

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект xbd-security

Описание проекта

Это вторичная оболочка для системы безопасности на основе Spring Security. Она имеет простую и понятную конфигурацию, удобна в использовании и уже включает 90% необходимого функционала. Для использования Spring Security достаточно реализовать небольшое количество дополнительного функционала.

Архитектура программного обеспечения

  1. Spring Security 5.0.8.RELEASE.
  2. spring framework 5.0.8.RELEASE.
  3. slf4j 1.7.25.

Начало работы Скачайте исходный код и импортируйте его.

Конфигурация

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[] {}));
}

}

ResourcesLoaderService
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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Artistic-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xbd521-xbd-security.git
git@api.gitlife.ru:oschina-mirror/xbd521-xbd-security.git
oschina-mirror
xbd521-xbd-security
xbd521-xbd-security
master