每个字段的Springboot安全访问权限

时间:2016-03-21 10:27:27

标签: spring spring-security field

我想在spring mvc中访问每个字段。 例如

我有3个字段的实体 ID,名称,描述。 具有ROLE_USER的用户只能看到名称,获得ROLE_ADMIN的用户可以看到名称和描述。我试着用 @PreAuthorize("hasRole('ROLE_USER')")在实体和dto中,但它只在服务和控制器中工作。

我尝试在@Component之前使用@Entity加密,但它不起作用。

ps:prePostEnabled已配置

@EnableGlobalMethodSecurity(prePostEnabled = true)

任何解决方案?

1 个答案:

答案 0 :(得分:0)

对于这个建议者,如果你使用的是使用jsp或百里香弹簧安全方言,那么如果你使用百里香叶,更好的方法是使用弹簧安全标签。

在第一种情况下,你的pom中有这种maven依赖

import pytest
from collections import namedtuple

Auth = namedtuple('Auth', 'app, login')

@pytest.fixture
def app():
    return 'APP'

@pytest.fixture
def login(app):
    return 'Login at %s' % app

@pytest.fixture
def auth(app, login):
    return Auth(app, login)

def test_something(auth):
    assert auth.app in auth.login

在第二种情况下,你的pom中有这种maven依赖

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>your.version</version>
</dependency>

关键点是,<dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity4</artifactId> <version>your.version</version> </dependency> 使用方法安全保护,而不是表示级保护。换句话说,使用您的配置,您可以在应用程序级别保护您的方法调用,以保护安全性对象的方式,同时进行演示文稿保护Spring安全性为此propouse提供一些自定义标记,对于thymeleaf,您可以使用安全方言。

我希望这可以帮到你