【问题标题】:Spring Security - where to set default user's authority?Spring Security - 在哪里设置默认用户的权限?
【发布时间】:2014-12-18 23:31:06
【问题描述】:
我正在使用 Spring MVC 和 Security 创建一个简单的应用程序。我在数据库中创建了 User 和 Authority 表,并将它们映射到我的应用程序中。每当有新用户注册时,我想默认给他一个“ROLE_USER”。
注册时我应该在哪一层给他分配新角色?
在控制器、DAO、Service,还是作为数据库中的触发器?
问候,
汤姆。
【问题讨论】:
标签:
java
spring
spring-mvc
spring-security
【解决方案1】:
它应该在服务层。如果您的应用程序中有某种用户服务(例如UserDetailsService 的实现),请将用于创建新用户的方法放在那里并在该方法中设置默认角色。
DAO 层应该关注对数据库的 CRUD 访问,因此它不应该处理业务逻辑,例如在创建用户时分配默认角色。
Controller也不适合这种逻辑,因为它是表现层组件,而用户创建/角色分配是完全独立于表现层的核心逻辑。
我不确定是否为此目的使用数据库触发器,但我个人喜欢保持我的应用程序中的逻辑不分散在数据库和应用程序之间。