@RestController
@RequestMapping (value = "/api/secured/resource/school")
@Secured ({ ApplicationConstants.Role.SYSTEM_ADMIN, ApplicationConstants.Role.SCHOOL_ADMIN })
public class SchoolController
{
@Autowired
private SchoolService schoolService;
@PostMapping (consumes = "application/json")
@Secured ({ ApplicationConstants.Role.SYSTEM_ADMIN })
public @ResponseBody ResponsePayload createSchool (HttpServletRequest request, @RequestBody School school)
throws ServiceException
{
}
interface Role
{
String SYSTEM_ADMIN = "SYSTEM_ADMIN";
String SCHOOL_ADMIN = "SCHOOL_ADMIN";
}
Spring配置
<http pattern="/static/**" security="none" />
<http use-expressions="true">
<intercept-url pattern="/app/**" access="isAuthenticated()" />
<form-login login-page="/loginPage"
authentication-success-handler-ref="mySuccessHandler"
authentication-failure-handler-ref="myFailureHandler" />
<logout logout-success-url="/loginPage" />
<custom-filter ref="loginFilter" after="FIRST" />
<csrf disabled="true" />
</http>
2016-07-15 16:03:12,525 DEBUG MethodSecurityInterceptor:348-以前通过身份验证:org.springframework.security.authentication.usernamePasswordAuthenticationToken@7670236f:principal:SystemUser[userid=1,name=Administrator,email=admin@tepachi.com,mobilePhone=9999999999,status=active];全权证书:[受保护];认证:真;详细信息:org.springframework.security.web.authentication.webauthenticationdetails@0:remoteIPaddress:0:0:0:0:0:0:0:0:0:0:0:1;Sessionid:1H5X6YXTD1M0Y1OGS4H5VFO1YL;授予权限:SYSTEM_USER,SYSTEM_ADMIN 2016-07-15 16:03:12,525 DEBUG肯定性基础:66-voter:org.springframework.security.Access.vote.rolevoter@55951fcd,返回:0 201 6-07-15 16:03:12,527 DEBUG肯定性基础:66-voter:org.springframework.security.Access.vote.authenticatedvoter@46ab4efc,返回:0 201 6-07-15 16:03:12,529 DEBUG createSchool(javax.servlet.http.HttpServletRequest,com.tepachi.db.entities.user.school)抛出com.tepachi.exception.ServiceException]:org.springframework.security.Access.AccessDeniedException:访问被拒绝
问题是Spring4以后,它将ROLE_准备到授予的权限。
hasRole([role]):如果当前主体具有指定的角色,则返回true。默认情况下,如果提供的角色不以'role_'开头,则将添加该角色。这可以通过修改DefaultWebSecurityExpressionHandler上的defaultRolePrefix来定制。
更多信息可以在这里找到Spring Doc
我知道这可能会被选为副本(因为我已经看到了这张使用Dijkstra算法的负权重图,所以我认为其中没有一个答案是我想要的。我对Dijkstra算法在有一条负边的图中的解感兴趣,但Dijkstra仍然会显示正确的解。那张图会是什么样子?我无法想象,或者我不擅长enough需要了解Dijkstra如何处理负边缘。我知道有一个带负边的图,可以用Dijkstra遍历,并且仍然有正确的路径。请不要告诉我使用贝
RecyclerView.Adapter
我是机器学习和OpenCV的新手。我从Cohn-Kanade人脸数据库中为每种情绪(中性和快乐)拍摄了一组10张图像。然后,我从每个图像中提取面部特征,并将它们放入我的训练数据矩阵中,并为各自的情绪分配标签(例如:0表示中性,1表示快乐)。 我使用了gamma=0.1和C=1的RBF内核。经过训练后,我将从智能手机摄像头中提取出的面部特征用于预测。预测总是返回1。 如果我增加中性表达式的训练样本数
我在React应用程序中使用moment.js,并使用以下代码查找两个unix时间戳之间的差异: null 使用时刻V2.19.2和节点V7.9.0 编辑:输出需要'ed,和之间的时间差可以是几分钟到几个月...
问题内容: 如您所见,我有我的数据库连接文件和另一个“受保护的”文件,我的凭据在其中,并且此文件包含在.gitignore中。我导入它并到达数据。很基本。因此,我的问题是: 这是正确的方法吗? 如果没有,我该怎么办?另外:如何为帐户和连接增加额外的安全性? 假设我有一个私人收藏,没人可以看到,我该如何特别保护这个收藏?我的意思是说,用密码或两步验证。 当前代码: 问题答案: …我有我的数据库连接文
> 我有一个谷歌云存储桶,我想只使用云CDN访问它。 我已经创建了负载平衡器,创建了签名密钥,并向它添加了服务帐户,几乎所有的权限,如、、等。 补救步骤: from cmd: 其中是从负载均衡器生成的IP,过期时间当然是未来时间戳,key--file是从服务帐户生成的json密钥文件,--key-name是从源details details生成的签名密钥 在生成签名url的php代码中,我也应用了