Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有Spring MVC的定制Spring安全性_Java_Spring Security - Fatal编程技术网

Java 没有Spring MVC的定制Spring安全性

Java 没有Spring MVC的定制Spring安全性,java,spring-security,Java,Spring Security,我正在使用自己的MVC实现,我不确定Spring安全性是否不是专门为Spring MVC实现设计的。还可以用它吗 我不清楚我应该使用和不需要使用SpringSecurity的哪些部分。我想我不需要URL过滤器,因为我需要特别验证对控制器中URL参数的访问(例如,检查用户是否是文章的所有者)。比如: if (request.getUser().isAllowedTo("EditArticle", 27)) {...} if (request.getUser().isAllowedTo("Categ

我正在使用自己的MVC实现,我不确定Spring安全性是否不是专门为Spring MVC实现设计的。还可以用它吗

  • 我不清楚我应该使用和不需要使用SpringSecurity的哪些部分。我想我不需要URL过滤器,因为我需要特别验证对控制器中URL参数的访问(例如,检查用户是否是文章的所有者)。比如:

    if (request.getUser().isAllowedTo("EditArticle", 27)) {...}
    if (request.getUser().isAllowedTo("CategoryManager", 123)) {...}
    if (request.getUser().isInRole("Admin")) {...}
    
  • 我无法找到用户以编程方式登录/注销的清晰方式。我已经实现了我的
    UserDetails
    UserDetailsService
    类来处理使用JPA的用户,但是我没有看到一种方法,如何在我的控制器中继续登录和注销

  • 编辑:

    我看不到如何将
    放入我的Freemarker模板中-创建我找到的表单的唯一方法是使用:

    <http pattern="/login.htm*" security="none"/>
        <form-login login-page="/login.htm" default-target-url="/home.htm"/>
    </http>
    
  • SpringSecurity不仅限于SpringMVC,还可以与您自己的框架实现一起使用。它为身份验证和会话管理提供方便的服务

  • Spring非常方便地用于利用特定URL的访问,但不限于。您将能够从spring上下文中获取当前用户目前拥有的角色,以及您将包含在UserDetails对象中的所有自定义信息。有许多方法可以限制某些角色对某些操作的访问。然而,像
    if(request.getUser().isAllowedTo(“EditArticle”,27)){…}
    这样的代码我认为自己检查会更简单

  • 登录和注销是通过调用特定的URL来完成的。用于登录:/j\u spring\u security\u check。用于注销:/j\u spring\u security\u注销

  •  if (user.username.ok() and user.password.ok()) {
         authService.setUser(user);
         authService.setLoggedIn(true);
     }