Проект xu-sso — это облегчённая платформа для управления унифицированными аутентификацией и авторизацией, цель которой — помочь разработчикам быстро создать единую систему аутентификации и авторизации. Она характеризуется простотой подключения, низким уровнем вмешательства и слабой связанностью компонентов.
Платформа поддерживает перехват API-интерфейсов, но в настоящее время ограничивается только веб-интерфейсами с разделением на клиентскую и серверную части. Сохранение токенов зависит от файлов cookie. В новой версии поддерживается заголовок (head).
Path | Description |
---|---|
/app/p?ttern | Соответствует /app/pattern и /app/pXttern, но не включает /app/pttern |
/**/example | Соответствует корневому пути проекта /project/example, /project/foow/example и т. д. |
/app/delete* | Соответствует (Matches) /app/deleteUser, /app/deleteApp и т.д. |
Следует отметить, что сопоставление путей следует принципу «самого длинного совпадения» (has more characters). Например, /app/dir/file.jsp соответствует обоим шаблонам /**/.jsp и /app/dir/.jsp, поэтому в конечном итоге будет использоваться последний шаблон.
Добавлены API для входа и выхода из системы. Клиент поддерживает заголовок, позволяя помещать токен в заголовок при запросе, где имя заголовка совпадает с именем файла cookie, оба из которых являются токенами.
API для входа: http://localhost:8282/api/login. Запрос:
{
"appId":"",
"username":"",
"password":""
}
Ответ:
{
"code":"Success",
"msg":"成功",
"token":"91be1d5d818943c0b50bd368284bc01e"
}
API выхода: http://localhost:8282/api/logout. Запрос:
{
"token":"91be1d5d818943c0b50bd368284bc01e"
}
Ответ:
{
"code": "Success",
"msg": "成功"
}
$.ajaxSetup({
error: function(xhr,status,error) {
if (401 == xhr.status) {
window.location.href = xhr.responseText;
} else if (403 == xhr.status) {
// Можно использовать настраиваемое всплывающее окно
layer.alert(xhr.responseText, {icon: 5});
}
}
});
Добавьте зависимость клиента в pom.xml:
<dependency>
<groupId>com.xu.sso</groupId>
<artifactId>sso-client</artifactId>
<version>последняя версия</version>
</dependency>
Настройте параметры свойств:
# Адрес сервера SSO
com.xu.sso.service.path =
# Путь выхода текущего пользователя (эта функция не предоставляется на стороне сервера, только кнопка выхода на передней панели должна соответствовать пути выхода)
com.xu.sso.logout.path = /logout
# Идентификатор текущего проекта
com.xu.sso.app_id =
# Время обновления полномочий проекта (в миллисекундах), -1 означает не обновлять
com.xu.sso.interval = 0
# Redis
com.xu.sso.redis.host =
com.xu.sso.redis.password =
com.xu.sso.redis.database =
# Если используется режим Sentinel, укажите masterID, по умолчанию mymaster
com.xu.sso.redis.masterId=mymaster
Добавьте конфигурацию фильтра:
org.springframework.web.filter.DelegatingFilterProxy loginFilter /*
powerFilter org.springframework.web.filter.DelegatingFilterProxy powerFilter /* ``` 最后,在认证平台后台管理系统里注册下应用 在后台创建项目的人员,会自动成为项目负责人权限,项目负责人权限可转移,最多可添加3人接入完成后,在项目中使用时,若需要获取当前登录用户信息,Java后端可使用
UserLoginInfo userLoginInfo = LoginFilter.threadLocal.get();
// 或者通过request获取
UserLoginInfo userLoginInfo = (UserLoginInfo)request.getAttribute(SSOConfig.SSO_USER);
登录后会将用户信息放入到threadLocal跟request中,在页面中,可通过request获取用户信息
Перевод текста на русский язык:
В конце, в системе управления бэкенда платформы аутентификации зарегистрируйте приложение. Сотрудники, создающие проект в бэкенде, автоматически становятся ответственными за проект. Ответственные за проект могут быть переданы, максимум можно добавить 3 человека.
После завершения подключения при использовании в проекте, если вам нужно получить информацию о текущем вошедшем пользователе, вы можете использовать Java backend следующим образом:
UserLoginInfo userLoginInfo = LoginFilter.threadLocal.get();
или
UserLoginInfo userLoginInfo = (UserLoginInfo) request.getAttribute (SSOConfig. SSO_USER);
Информация о пользователе будет помещена в threadLocal и request после входа в систему. Вы можете получить информацию о пользователе через request на странице.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )