spring security 二 学习,是2 不是3
昨天看acegi 差点没有死的,弄的我晕晕的配置太多,太复杂,晕死 。后来看到acegi 框架已经 成为Spring 的合作项目了
于是从下载了,那时候晕晕,随便下了个找个最新版 下了3 ,加载 的jar 是 2 , 弄了半天 高的这个tomcat 都无法启动。配置文件总是报错。
哎 ,天才的出错恩,说一句话恩
spring source 开源组织 的 版本号问题 版本有三部分组成
“版本号是一个包含三个整数的组合:主要版本号.次要版本号.补丁。 基本思路是主要版本是不兼容的,大规模升级API。 次要版本号在源代码和二进制要与老版本保持兼容,补丁则意味着向前向后的完全兼容。” 千万要注意版本号码恩,
我写了一个最简单的 Demo
用spring security 2 的配置
1 先建立WEB工程,web工程中都有个inde。jsp的页面 下面的页面就是 index。jsp页面,先访问下这个页面。
1 验证页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 这是开始页面. <br> <%=session %> </body> </html>
--------------------------
访问成功后,添加 spring security 的支持。
web.xml的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml</param-value> </context-param> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!-- - Publishes events for session creation and destruction through the application - context. Optional unless concurrent session control is being used. --> <listener> <listener-class> org.springframework.security.ui.session.HttpSessionEventPublisher </listener-class> </listener> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
2 applicationContext-acegi-security.xml 文件的写法,是2 不是 3
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" 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.1.xsd"> <global-method-security secured-annotations="enabled"></global-method-security> <!-- 注意下面是 spring secutity 2中的写法 与3 不兼容 --> <http auto-config="true"> <intercept-url pattern="/**" access="ROLE_USER" /> </http> <authentication-provider> <user-service> <user name="user" password="user" authorities="ROLE_USER"></user> </user-service> </authentication-provider> </beans:beans>
4 然后呢,访问index。jsp页面, 石化的了, 明明我没有写 登陆页面怎么出现登陆页面,尴尬吧,那个自作多情的给我写的。。。原来是spring security 给写的,无聊的spring security 写个登陆界面不知大写的好看点。。。
说一个 javaeye 上传文件的 小窍门恩,怎么把 jar 文件快速删除
压缩文件的时候 添加到压缩文件---页面--排除 文件 写上 *.jar 这样就删除了。
5 更改代码 V2版 添加 出错页面,添加 md5 加密,添加显示控制等,具体看上传的项目吧 代码了有说明
java 代码中有一段 Md5 加密。
6 越写越乱了,成笔记了, 说说spring security 2 的共享对象,什么是共享对象,在我的认识中java 对象分为几种,持久对象,比如要持久化的对象,我要保存一个人的信息,用面向对象的来说,要把人的对象保存下来
传输对象,将人的对象 数据传输的 list<Person> 或者在 方法中按照方法筛选的对象,
共享对象或者叫配置对象, 一个框架中 共享信息的对象,比如session ,在spring中的context 对象。
在sspring security 2 中的共享对象 分别是 SecurityContextHolder> SecurityContext >Authentication 对象
具体的对象含义