我想在spring mvc中访问每个字段。 例如
我有3个字段的实体
ID,名称,描述。
具有ROLE_USER的用户只能看到名称,获得ROLE_ADMIN的用户可以看到名称和描述。我试着用
@PreAuthorize("hasRole('ROLE_USER')")
在实体和dto中,但它只在服务和控制器中工作。
我尝试在@Component
之前使用@Entity
加密,但它不起作用。
ps:prePostEnabled
已配置
@EnableGlobalMethodSecurity(prePostEnabled = true)
任何解决方案?
答案 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,您可以使用安全方言。
我希望这可以帮到你