Spring Security入门

1.新建一个web项目,并加入以下依赖库
[quote]
*SPRING_HOME/dist/spring.jar
*spring-security-2.0.5/dist/spring-security-acl-2.0.5.RELEASE.jar
*spring-security-2.0.5/dist/spring-security-core-2.0.5.RELEASE.jar
*spring-security-2.0.5/dist/spring-security-taglibs-2.0.5.RELEASE.jar
[/quote]

2.配置过滤器
为了在项目中使用Spring Security控制权限,首先要在web.xml中配置过滤器,这样我们就可以控制对这个项目的每个请求了。

<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

所有的用户在访问项目之前,都要先通过Spring Security的检测,这从第一时间把没有授权的请求排除在系统之外,保证系统资源的安全。

3.在项目的src目录下建立一个applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:beans="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
<!-- http配置如何拦截用户请求。将auto-config设为'true'将自动配置几种常用的权限控制机制,包括form, anonymous, rememberMe。 -->
<beans:http auto-config="true">
<!-- 我们利用intercept-url来判断用户需要具有何种权限才能访问对应的url资源,
可以在pattern中指定一个特定的url资源,也可以使用通配符指定一组类似的url资源。
例子中定义的两个intercepter-url,第一个用来控制对/admin.jsp的访问,
第二个使用了通配符/**,说明它将控制对系统中所有url资源的访问。

在实际使用中,Spring Security采用的是一种就近原则,
就是说当用户访问的url资源满足多个intercepter-url时,
系统将使用第一个符合条件的intercept-url进行权限控制。
在我们这个例子中就是,当用户访问/admin.jsp时,
虽然两个intercept-url都满足要求,
但因为第一个intercept-url排在上面,
所以Spring Security会使用第一个intercept-url中的配置处理对/admin.jsp的请求,
也就是说,只有那些拥有了ROLE_ADMIN权限的用户才能访问/admin.jsp。 -->
<beans:intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
<beans:intercept-url pattern="/**" access="ROLE_USER" />
</beans:http>
<beans:authentication-provider>
<!-- user-service中定义了两个用户,admin和user,
重要的部分是authorities,这里定义了这个用户登陆之后将会拥有的权限,
它与上面intercept-url中定义的权限内容一一对应。每个用户可以同时拥有多个权限,
例子中的admin用户就拥有ROLE_ADMIN和ROLE_USER两种权限,
这使得admin用户在登陆之后可以访问ROLE_ADMIN和ROLE_USER允许访问的所有资源。

与之对应的是,user用户就只拥有ROLE_USER权限,所以他只能访问ROLE_USER允许访问的资源,
而不能访问ROLE_ADMIN允许访问的资源。-->
<beans:user-service>
<beans:user name="admin" password="admin"
authorities="ROLE_USER,ROLE_ADMIN" />
<beans:user name="user" password="user"
authorities="ROLE_USER" />
</beans:user-service>
</beans:authentication-provider>
</beans>


4.在webroot目录下创建两个文件:admin.jsp和index.jsp
admin.jsp:

admin.jsp


index.jsp

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<div>username : <sec:authentication property="name"/></div>
<hr>
<a href="admin.jsp">admin.jsp</a>
<a href="j_spring_security_logout">logout</a>


5.完善整个项目
因为Spring Security是建立在Spring的基础之上的,所以web.xml中除了需要配置我们刚刚提到的过滤器,还要加上加载Spring的相关配置。最终得到的web.xml看起来像是这样:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:config/applicationContext*.xml
</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>


6.发布运行即可看到效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园2.0是高校信息化建设的新阶段,它面对着外部环境变化和内生动力的双重影响。国家战略要求和信息技术的快速发展,如云计算、大数据、物联网等,为智慧校园建设提供了机遇,同时也带来了挑战。智慧校园2.0强调以服务至上的办学理念,推动了教育模式的创新,并对传统人才培养模式产生了重大影响。 智慧校园建设的解决之道是构建一个开放、共享的信息化生态系统,利用互联网思维,打造柔性灵活的基础设施和强大的基础服务能力。这种生态系统支持快速迭代的开发和持续运营交付能力,同时注重用户体验,推动服务创新和管理变革。智慧校园的核心思想是“大平台+微应用+开放生态”,通过解耦、重构和统一运维监控,实现服务复用和深度融合,促进业务的快速迭代和自我演化。 智慧校园的总体框架包括多端协同,即“端”,它强调以人为中心,全面感知和捕获行为数据。这涉及到智能感知设备、超级APP、校园融合门户等,实现一“码”或“脸”通行,提供线上线下服务端的无缝连接。此外,中台战略是智慧校园建设的关键,包括业务中台和数据中台,它们支持教育资源域、教学服务域等多个领域,实现业务的深度融合和数据的全面治理。 在技术层面,智慧校园的建设需要分期进行,逐步解耦应用,优先发展轻量级应用,并逐步覆盖更多业务场景。技术升级路径包括业务数据化、数据业务化、校园设施智联化等,利用IoT/5G等技术实现设备的泛在互联,并通过人工智能与物联网技术的结合,建设智联网。这将有助于实现线上线下一网通办,提升校园安全和学习生活体验,同时支持人才培养改革和后勤管理的精细化。 智慧校园的建设不仅仅是技术的升级,更是对教育模式和管理方式的全面革新。通过构建开放、共享的信息化生态系统,智慧校园能够更好地适应快速变化的教育需求,提供更加个性化和高效的服务,推动教育创新和人才培养的高质量发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值