我正试图围绕Spring Security。我想要实现的是API是全局安全的,因此不是特定于方法的,具体取决于HTTP动词和用户角色。
因此,在 GET 方法中,您需要 经过身份验证 并带有 USER 角色。 所有其他都需要ADMIN权限。我的用户实体类看起来像这样(使用Lombok数据注释):
@Entity
@Data
@NoArgsConstructor
@Table(uniqueConstraints=@UniqueConstraint(columnNames={"username"}))
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@NotNull
private String username, password;
@NotNull
@Enumerated(EnumType.STRING)
private UserRole role;
private boolean activated, tokenExpired;
}
任何帮助都会非常感激,不喜欢项目中没有XML。
答案 0 :(得分:0)
我是老狗,有老技巧,所以这是XML解决方案:
在applicationContext-security.xml
:
<http use-expressions="true" disable-url-rewriting="true">
<intercept-url pattern="/**" method="GET" access="hasRole('ROLE_USER')"/>
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')"/>
<http-basic/>
</http>