Spring MVC和JSON中的安全性

Cet*_*mre 3 security spring json

我想以这种或那种方式为发送和获取JSON数据提供安全性,但我不知道如何做到这一点.

我们的系统具有用户角色(系统管理员,一般会员等)

我们决定使用Spring MVC URL模式将数据发送为JSON.我不希望系统外的所有人都使用此URL,只有用户才能使用该URL.

www.example.com/services/"hereUserPass"/"hereUserName"/category/3
Run Code Online (Sandbox Code Playgroud)

每个请求时间为不同的URL,我应该控制用户名和密码是否注册之前?或者我应该为安全做些什么?

kam*_*aci 6

您希望在Spring Web应用程序中实现安全性.您可以通过两种方式执行此操作:

  • 基于网址的安全性
  • 基于方法的安全性

尝试创建另一个xml文件,就像applicationContext-security.xml一样,这是一个例子:

<http use-expressions="true">
    <intercept-url pattern="/" access="permitAll"/>
    <intercept-url pattern="/static/**" filters="none" />
    <intercept-url pattern="/**" access="isAuthenticated()" />
    <form-login />
    <logout />
</http>
Run Code Online (Sandbox Code Playgroud)

在这里,我们看到这permitAll意味着允许每个想要访问该URL的人.filters = none具有相同的效果,但这意味着用户不会检查Spring Security(以前的版本通过Spring Security但具有访问权限,不应用过滤).isAuthenticated表示用户可以通过身份验证到达那里.您还可以将基于角色的访问应用于URL.

基于中间层安全性的其他安全实现.您应该在应用程序上下文安全文件中添加此行:

<global-method-security pre-post-annotations="enabled" />
Run Code Online (Sandbox Code Playgroud)

所以您可以使用基于方法的安全性,如:

@PreAuthorize("hasRole('ROLE_SUPERVISOR')")
void storeVisit(Visit visit) throws DataAccessException;
Run Code Online (Sandbox Code Playgroud)

您可以开始阅读Spring的Pet Clinic示例的Spring Security实现:http://static.springsource.org/spring-security/site/petclinic-tutorial.html

我建议你在这里阅读:http://www.mularien.com/blog/2008/07/07/5-minute-guide-to-spring-security/