`
游其是你
  • 浏览: 12791 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Security教程之Spring Security实现访问控制

阅读更多

在Spring Security中,实现访问控制或权限控制是非常容易实现的,请看下面的代码片段:

1
2
3
  <http auto-config="true">
    <intercept-url pattern="/admin*" access="ROLE_ADMIN" />
  </http>

它的意思是,只有“ROLE_ADMIN”权限的用户可以允许访问“ /admin*”路径,如果没有权限的用户访问则会提示“http 403 access denied page”错误。

本次教程中,我们像你展示只有“ROLE_ADMIN”权限的用户可以访问“/admin*”

1.项目依赖

访问控制需要Spring Security的核心包,请参考Spring+Spring Security+Maven 实现的一个Hello World例子 列出的jar

2.Spring MVC

Spring MVC做控制器并返回一个“hello”视图,这个你应该可以理解的。

WelcomeController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.mkyong.common.controller;
  
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
@Controller
public class WelcomeController {
  
    @RequestMapping(value = "/admin", method = RequestMethod.GET)
    public String welcomeAdmin(ModelMap model) {
  
        model.addAttribute("message""Spring Security - ROLE_ADMIN");
        return "hello";
  
    }
  
}

 hello.jsp

1
2
3
4
5
6
7
8
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
    <h3>Message : ${message}</h3>
  
    <a href="<c:url value="j_spring_security_logout" />" > Logout</a>
</body>
</html>

3.Spring Security

一下是Sprign Security全部的配置文件,只允许“eclipse”用户可以访问“/hello”页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    xsi:schemaLocation="http://www.springframework.org/schema/beans
  
    <http auto-config="true">
        <intercept-url pattern="/admin*" access="ROLE_ADMIN" />
        <logout logout-success-url="/admin" />
    </http>
  
    <authentication-manager>
      <authentication-provider>
       <user-service>
        <user name="it161" password="password" authorities="ROLE_USER" />
        <user name="eclipse" password="password" authorities="ROLE_ADMIN" />
       </user-service>
      </authentication-provider>
    </authentication-manager>
  
</beans:beans>

4.示例

http://localhost:8080/SpringMVC/admin

1.默认的登陆页面如下所示:

2.如果用“it161”登陆时,就会提示“http 403 is access denied page”,因为it161是“ROLE_USER”权限

3.如果用“eclipse”登陆的话,“hello.jsp”就会展示,因为“eclipse”是“ROLE_ADMIN“权限。

默认的403页面非常丑陋,请可以阅读本人自定义你的403页面:Spring Security教程-Spring Security实现访问控制

原创文章,转载请注明出处:http://www.it161.com/article/javaDetail?articleid=140113230945

更多原创内容,请访问:http://www.it161.com/

分享到:
评论

相关推荐

    spring Security3中文教程,经典的

    ### Spring Security3中文教程知识点概览 #### 一、安全核心概念与起步 Spring Security是Spring框架中的一个重要组成部分,主要用于为Web应用提供安全防护。它不仅提供了强大的认证和授权功能,还支持各种加密...

    Spring Security 教程(Spring Security Tutorial)1

    - Spring Security 不仅仅关注URL级别的访问控制,还可以在方法级别实现安全控制,这样可以在业务逻辑层细化权限管理。 5. **基于角色的登录**: - 用户登录后,Spring Security 可以根据用户的角色分配不同的...

    Spring Security 中文教程.pdf

    - **访问控制**:Spring Security通过一系列机制实现了细粒度的访问控制: - **安全和AOP建议**:结合面向切面编程(AOP)来实现更灵活的安全控制。 - **安全对象和AbstractSecurityInterceptor**:定义安全拦截器...

    Spring Security in Action

    在 Spring Security 中,访问控制是通过 FilterChainProxy 实现的。FilterChainProxy 负责拦截用户的请求,并根据用户的权限决定是否允许访问资源。 四、SecurityContext SecurityContext 是 Spring Security 中的...

    springboot springsecurity动态权限控制

    在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...

    spring security教程

    Spring Security 是一个强大的安全框架,主要用于Java Web应用的安全管理,包括认证、授权和访问控制等核心功能。本教程是基于Mossle平台整理的Spring Security入门资料,旨在帮助初学者快速掌握这一关键的安全技术...

    Spring Security-3中文官方文档(及教程)

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它为Web应用和企业级应用提供了全面的安全解决方案。Spring Security 3是中国社区翻译的官方文档,为国内开发者提供了方便的...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...

    Spring Security 资料合集

    Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用和企业级应用提供了全面的...通过学习这些文档,开发者可以更好地理解Spring Security的工作原理,从而更有效地实现应用的安全控制。

    spring security实现动态授权

    Spring Security 是一个强大的安全框架,用于为Java应用提供安全控制。在传统的权限管理中,权限配置通常硬编码在应用程序中,这使得权限调整变得困难,每次变动都需要重新部署应用。然而,通过动态授权,我们可以将...

    基本的spring mvc + spring security实现的登录(无数据库)

    - **配置**:可以使用Java配置类或XML配置文件来定制Spring Security的行为,例如定义访问规则、配置安全过滤器链等。 - **无数据库登录**:在没有数据库的情况下,用户信息可能存储在内存中或者通过硬编码实现,...

    Spring Security如何使用URL地址进行权限控制

    我们可以使用Spring Security来实现权限控制,使得不同用户只能访问自己所拥有的资源。 在Spring Security中,权限控制是通过FilterSecurityInterceptor来实现的。FilterSecurityInterceptor是一个过滤器,它可以...

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    SpringSecurity.pdf

    Spring Security之所以在Java社区中广泛流行,是因为它不仅提供了强大的安全特性,还具有高可定制性、良好的扩展性和兼容性,使得开发者可以根据具体需求选择合适的安全解决方案。而随着Web应用程序的安全要求越来越...

    SpringSecurity笔记,编程不良人笔记

    SpringSecurity支持基于角色的访问控制(RBAC)和其他授权模型。 - **Access Decision Manager**: 决策管理器用于处理授权决策,根据用户的角色和请求资源的权限进行判断。 - **UserDetailsService**: 这是一个...

    SpringSecurity学习总结源代码

    SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...

    springSecurity 实现传参

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。在这个场景中,我们关注的是如何使用Spring Security实现登录验证以及在登录过程中传递参数,特别是记录并返回用户登录前的...

    spring security 完整项目实例

    角色和权限验证是Spring Security的核心功能之一。通过RoleHierarchy接口,我们可以定义角色的层次结构。权限验证则基于AccessDecisionManager和AccessDecisionVoter,它们决定了用户是否有权访问特定的资源。通常,...

    Spring Security 3多用户登录实现一

    Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛应用于Java EE平台上的安全解决方案。在本文中,我们将深入探讨如何在Spring Security 3中实现多用户登录功能。首先,我们需要理解Spring ...

    spring spring security2.5 jar

    Spring Security通过访问决策管理器(AccessDecisionManager)和访问决策投票器(AccessDecisionVoter)实现这一过程。开发者可以自定义权限表达式(例如,`hasRole('ROLE_ADMIN')`)并结合方法或URL安全配置进行...

Global site tag (gtag.js) - Google Analytics