Основы pac4j-jwt: веб-безопасность
Введение
Основной упор делается на pac4j-jwt, который предоставляет веб-компонент безопасности по умолчанию с использованием JWT.
JDK | shaun | spring boot |
---|---|---|
17 | 2.x | 3.x |
8 | 1.x | 2.x |
Преимущества
Модули
Установка
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>shaun-spring-boot-starter</artifactId>
<version>Latest Version</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>spring-boot-version</version>
</dependency>
Подробности см. в wiki.
shaun:
......
security:
......
actuator:
......
thirdParty:
......
Дополнительную информацию о конфигурации yml можно найти здесь.
import com.baomidou.shaun.core.mgt.SecurityManager;
@Service
public class LoginServiceImpl implements LoginService {
@Autowired
private SecurityManager securityManager;
@Override
@Transactional
public String login() {
// 登录成功后 сохраняем информацию о ролях и разрешениях пользователя в profile
final TokenProfile profile = new TokenProfile();
profile.setId(userId.toString());
//profile.addRole(role:String);
//profile.setRoles(roles:Set);
//profile.addPermission(permission:String);
//profile.setPermissions(permissions:Set);
//profile.addAttribute("key","value");
final String token = securityManager.login(profile);
//Если выбрано сохранение токена в cookie, securityManager.login выполнит автоматическую операцию
return token;
}
@HasAuthorization
,@HasPermission
,@HasRole
Поддерживаются на уровне методов и классов.
Пример:
@HasPermission(value = {"add", "edit"}, logical = Logical.BOTH) //Оба разрешения должны существовать
@HasPermission(value = {"add", "edit"}, logical = Logical.ANY) //Любое из разрешений должно существовать (по умолчанию)
TokenProfile profile = ProfileHolder.getProfile();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )