我有Autorization的自定義模型,我想帶彈簧的安全表示:角色和權限自定義模型
我有角色和權限的concpt:
@Entity
public class User
...............
@ManyToMany
@Column
private Set<Role> roles;
@ManyToMany
@Column
private Set<Permission> permissions;
}
在我自己的UserDetailsService我有一個乾淨的方式來加載的角色,但我on't找到任何方式和與之相關的權限,彈簧安全的任何componenent:
public class BELUserDetailService implements UserDetailsService {
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User connectedUser = userRepositoy.findUserByUsername(username);
Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>();
for (Role r :connectedUser.getRoles()) {
authorities.add(new SimpleGrantedAuthority(r.getRoleAWB().name()));
}
BELUserDetails belUserDetails = new BELUserDetails(connectedUser.getIdUser(), authorities);
.....
....
}
}
我的角色是:
ADMIN 普通用戶 交易USER
我的權限是: VALIDATE_TRANSATION INIT_TRANSACTION
和功能的使用情況是,如果你想驗證你的交易擁有ROLE TRANSACTION USER和權限VALIDATE_TRANSACTION。
hasRole("ROLE_TRANSACTION_USER") and hasPermission("VALIDATE_TRANSACTION")
另一個重要的情況是,我希望在以後的使用PermissionEvaluator嘗試,如果用戶有角色「ROLE_TRANSACTION_USER」和許可VALIDATE_TRANSACTION驗證交易時放一些限制,他還必須有Amountlimit更大比交易量和這個功能是非常酷與PermissionEvaluator
這就是爲什麼我需要同時實現了角色和權限概念
如何,我將我的許可添加到彈簧安全的標準流程。
在此先感謝。
您能否顯示一些權限示例? –
我使用角色和權限的一些示例更新了帖子 – Nabil
另一種情況是,如果用戶具有角色「ROLE_TRANSACTION_USER」和權限VALIDATE_TRANSACTION,我希望將來使用PermissionEvaluator在嘗試驗證事務時放置一些限制,他還必須具有大於交易金額的Amountlimit,並且該功能對於PermissionEvaluator非常酷。 – Nabil