Spring Boot Уровень сущности, атрибут и метод перечисленияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot Уровень сущности, атрибут и метод перечисления

Сообщение 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

Подробнее здесь: https://stackoverflow.com/questions/784 ... and-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»