Может ли кто-нибудь объяснить этот код в роли и разрешении, метод получения в обоих файлах, я не знаю, какова цель, а также перечисление в файле разрешений, каждый атрибут имеет аргумент, почему это аргумент, если они уже РОЛЬ?
Permission.java
package com.crackit.SpringSecurityJWT.user;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public enum Permission {
ADMIN_READ("admin:read"),
ADMIN_CREATE("admin:create"),
MEMBER_READ("management:read"),
MEMBER_CREATE("management:create"),
;
@Getter
private final String permission;
}
Роль.java
package com.crackit.SpringSecurityJWT.user;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.crackit.SpringSecurityJWT.user.Permission.*;
@RequiredArgsConstructor
public enum Role {
ADMIN(
Set.of(
ADMIN_READ,
ADMIN_CREATE,
MEMBER_READ,
MEMBER_CREATE
)
),
MEMBER(
Set.of(
MEMBER_READ,
MEMBER_CREATE
)
)
;
@Getter
private final Set
permissions;
public List getAuthorities() {
var authorities = getPermissions()
.stream()
.map(authority -> new SimpleGrantedAuthority(authority.getPermission()))
.collect(Collectors.toList());
authorities.add(new SimpleGrantedAuthority("ROLE_" + this.name()));
return authorities;
}
}
Пользователь.java
package com.crackit.SpringSecurityJWT.user;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.Collection;
import java.util.List;
@Entity
@Table(name = "_user")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User implements UserDetails {
@Id
@GeneratedValue
private Integer id;
private String firstName;
private String lastName;
private String email;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
@Override
public Collection
Подробнее здесь: https://stackoverflow.com/questions/784 ... and-method
Spring Boot Уровень сущности, атрибут и метод перечисления ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1715671339
Anonymous
Может ли кто-нибудь объяснить этот код в роли и разрешении, метод получения в обоих файлах, я не знаю, какова цель, а также перечисление в файле разрешений, каждый атрибут имеет аргумент, почему это аргумент, если они уже РОЛЬ?
Permission.java
package com.crackit.SpringSecurityJWT.user;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public enum Permission {
ADMIN_READ("admin:read"),
ADMIN_CREATE("admin:create"),
MEMBER_READ("management:read"),
MEMBER_CREATE("management:create"),
;
@Getter
private final String permission;
}
Роль.java
package com.crackit.SpringSecurityJWT.user;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.crackit.SpringSecurityJWT.user.Permission.*;
@RequiredArgsConstructor
public enum Role {
ADMIN(
Set.of(
ADMIN_READ,
ADMIN_CREATE,
MEMBER_READ,
MEMBER_CREATE
)
),
MEMBER(
Set.of(
MEMBER_READ,
MEMBER_CREATE
)
)
;
@Getter
private final Set
permissions;
public List getAuthorities() {
var authorities = getPermissions()
.stream()
.map(authority -> new SimpleGrantedAuthority(authority.getPermission()))
.collect(Collectors.toList());
authorities.add(new SimpleGrantedAuthority("ROLE_" + this.name()));
return authorities;
}
}
Пользователь.java
package com.crackit.SpringSecurityJWT.user;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.Collection;
import java.util.List;
@Entity
@Table(name = "_user")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User implements UserDetails {
@Id
@GeneratedValue
private Integer id;
private String firstName;
private String lastName;
private String email;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
@Override
public Collection
Подробнее здесь: [url]https://stackoverflow.com/questions/78475260/spring-boot-entity-layer-enum-attribute-and-method[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия