这篇文章给大家分享的是有关spring中如何动态加载角色的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
顺城网站建设公司成都创新互联公司,顺城网站设计制作,有大型网站制作公司丰富经验。已为顺城上1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的顺城做网站的公司定做!
一、新增角色实体
@Entity public class Role { @Id @GeneratedValue private long rid; private String name; //角色名 private String descprtion; //角色描述 public long getRid() { return rid; } public void setRid(long rid) { this.rid = rid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescprtion() { return descprtion; } public void setDescprtion(String descprtion) { this.descprtion = descprtion; } }
二、添加角色操作接口
public interface RoleRepository extends JpaRepository{ }
三、修改UserInfo的用户角色
@ManyToMany(fetch = FetchType.EAGER) //立即从数据库中进行性加载数据; @JoinTable(name = "UerRole",joinColumns = {@JoinColumn(name = "uid")},inverseJoinColumns = {@JoinColumn(name = "role_id" )}) private Listroles;
四、修改CustomUserDetailService
// 定义权限列表 Listauthorities = new ArrayList (); // 用户拥有的权限 for (Role role:userInfo.getRoles()){ authorities.add(new SimpleGrantedAuthority("ROLE_"+role.getName())); }
五、修改DataInit
@Service public class DataInit { @Autowired private UserInfoRepository userInfoRepository; @Autowired private PasswordEncoder passwordEncoder; @Autowired private RoleRepository roleRepository; @PostConstruct public void dataInit(){ Listroles = new ArrayList<>(); Role adminRole = new Role(); adminRole.setName("admin"); adminRole.setDescprtion("管理员"); Role userRole = new Role(); userRole.setName("normal"); userRole.setDescprtion("普通用户"); roleRepository.save(adminRole); roleRepository.save(userRole); roles.add(adminRole); roles.add(userRole); UserInfo admin = new UserInfo(); admin.setUsername("admin"); admin.setPassword(passwordEncoder.encode("123")); admin.setRoles(roles); userInfoRepository.save(admin); roles = new ArrayList<>(); roles.add(userRole); UserInfo user = new UserInfo(); user.setUsername("user"); user.setPassword(passwordEncoder.encode("123")); user.setRoles(roles); userInfoRepository.save(user); } }
感谢各位的阅读!关于“spring中如何动态加载角色”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!