add spring security and token management
This commit is contained in:
		
							
								
								
									
										52
									
								
								src/main/java/com/iconplus/smartproc/model/entity/Menu.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/main/java/com/iconplus/smartproc/model/entity/Menu.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| package com.iconplus.smartproc.model.entity; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseEntity; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.GeneratorType; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
|  | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| @Entity | ||||
| @Table(name = "permission") | ||||
| public class Menu extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.IDENTITY) | ||||
|     @Column(name = "id") | ||||
|     private Long id; | ||||
|  | ||||
|     @Column(name = "subMenu") | ||||
|     private String subMenu; | ||||
|  | ||||
|     @Column(name = "menu") | ||||
|     private String menu; | ||||
|  | ||||
| //    @Column(name = "can_view") | ||||
| //    @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
| //    private Boolean canView; | ||||
| // | ||||
| //    @Column(name = "can_read") | ||||
| //    @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
| //    private Boolean canRead; | ||||
| // | ||||
| //    @Column(name = "can_create") | ||||
| //    @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
| //    private Boolean canCreate; | ||||
| // | ||||
| //    @Column(name = "can_delete") | ||||
| //    @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
| //    private Boolean canDelete; | ||||
|  | ||||
|     @Column(name = "deleted") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean deleted; | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| package com.iconplus.smartproc.model.entity; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseEntity; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.GenericGenerator; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.Column; | ||||
| import javax.persistence.GeneratedValue; | ||||
| import javax.persistence.Id; | ||||
| import javax.persistence.Table; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| @Table(name = "permission") | ||||
| public class Permission extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(generator = "UUID") | ||||
|     @GenericGenerator( | ||||
|             name = "UUID", | ||||
|             strategy = "org.hibernate.id.UUIDGenerator" | ||||
|     ) | ||||
|     @Column(name = "id") | ||||
|     private String id; | ||||
|  | ||||
|     @Column(name = "role_id") | ||||
|     private Long roleId; | ||||
|  | ||||
|     @Column(name = "role_id") | ||||
|     private Long menuId; | ||||
|  | ||||
|     @Column(name = "deleted") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean deleted; | ||||
| } | ||||
| @@ -0,0 +1,51 @@ | ||||
| package com.iconplus.smartproc.model.entity; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseEntity; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.GenericGenerator; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @Entity | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| @Table(name = "token_management") | ||||
| public class TokenManagement extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(generator = "UUID") | ||||
|     @GenericGenerator( | ||||
|             name = "UUID", | ||||
|             strategy = "org.hibernate.id.UUIDGenerator" | ||||
|     ) | ||||
|     @Column(name = "id") | ||||
|     private String id; | ||||
|  | ||||
|     @Column(name = "user_id") | ||||
|     private String userId; | ||||
|  | ||||
|     @Lob | ||||
|     @Column(name = "access_token") | ||||
|     private String accessToken; | ||||
|  | ||||
|     @Lob | ||||
|     @Column(name = "refresh_token") | ||||
|     private String refreshToken; | ||||
|  | ||||
|     @Column(name = "issued_time") | ||||
|     private Timestamp issuedTime; | ||||
|  | ||||
|     @Column(name = "expired_time") | ||||
|     private Timestamp expiredTime; | ||||
|  | ||||
|     @Column(name = "deleted") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean deleted; | ||||
| } | ||||
| @@ -20,8 +20,8 @@ public class Users extends BaseEntity { | ||||
|     @Column(name = "username") | ||||
|     private String username; | ||||
|  | ||||
|     @Column(name = "nama") | ||||
|     private String nama; | ||||
|     @Column(name = "fullname") | ||||
|     private String fullname; | ||||
|  | ||||
|     @Column(name = "email") | ||||
|     private String email; | ||||
|   | ||||
| @@ -0,0 +1,16 @@ | ||||
| package com.iconplus.smartproc.model.projection; | ||||
|  | ||||
| import java.sql.Clob; | ||||
|  | ||||
| public interface TokenManagementView { | ||||
|  | ||||
|     String getId(); | ||||
|     void setId(String id); | ||||
|  | ||||
|     String getUserId(); | ||||
|     void setUserId(String userId); | ||||
|  | ||||
|     Clob getAccessToken(); | ||||
|     void setAccessToken(Clob accessToken); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| package com.iconplus.smartproc.model.projection; | ||||
|  | ||||
| public interface UserRoleView { | ||||
|  | ||||
|     Long getId(); | ||||
|     String getUsername(); | ||||
|     String getPassword(); | ||||
|     Long getRoleId(); | ||||
|     String getRole(); | ||||
|     Boolean getDeleted(); | ||||
|  | ||||
|     void setId(Long id); | ||||
|     void setUsername(String username); | ||||
|     void setPassword(String password); | ||||
|     void setRoleId(Long roleId); | ||||
|     void setRole(String role); | ||||
|     void setDeleted(Boolean deleted); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,17 @@ | ||||
| package com.iconplus.smartproc.model.request; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseRequest; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class LoginRequest extends BaseRequest { | ||||
|  | ||||
|     private String email; | ||||
|     private String password; | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| package com.iconplus.smartproc.model.request; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseRequest; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class PostAccessTokenRequest extends BaseRequest { | ||||
|  | ||||
|     private String accessToken; | ||||
| } | ||||
| @@ -0,0 +1,26 @@ | ||||
| package com.iconplus.smartproc.model.response; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseResponse; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.util.Set; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class LoginResponse extends BaseResponse { | ||||
|  | ||||
|     private String accessToken; | ||||
|     private String validity; | ||||
|     private String refreshToken; | ||||
|     private String username; | ||||
|     private String email; | ||||
|     private Long roleId; | ||||
|     private String role; | ||||
|     Set<String> accessMenu; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| package com.iconplus.smartproc.model.response; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseResponse; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class PostAccessTokenResponse extends BaseResponse { | ||||
|  | ||||
|     private Boolean isValid; | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| package com.iconplus.smartproc.model.token; | ||||
|  | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
|  | ||||
| import java.util.Set; | ||||
|  | ||||
| @Builder | ||||
| @Data | ||||
| public class TokenContent { | ||||
|     private String userId; | ||||
|     private String role; | ||||
|     private Set<String> accessMenu; | ||||
|     private String fullname; | ||||
|     private String username; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user