在上一篇入门中,简单介绍了spring security3的用法,但现实中,登录页面都是用户自己定义的,而不是spring
security3生产的,这个时候,我们可以自定义用户登录页面。通过分析spring
security3生成的登录页面,我们可以看到,它是一个表单,表单的action,userName 和 password的name分别为 j_spring_security_check,
j_username,j_password。
(1)针对这个情况,我们自定义登录页面login.jsp,内容如下:
-
<
%@ page
language
=
"java"
contentType
=
"text/html; charset=UTF-8"
-
pageEncoding
=
"UTF-8"
%
>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
<
html
>
-
<
head
>
-
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=UTF-8"
>
-
<
title
>
login interface
</
title
>
-
</
head
>
-
<
body
>
-
<
h3
>
user login
</
h3
>
-
${sessionScope.SPRING_SECURITY_LAST_EXCEPTION.message}
-
<
form
action
=
"${pageContext.request.contextPath}/j_spring_security_check"
method
=
"post"
>
-
userName:<
input
type
=
"text"
name
=
"j_username"
/>
<
br
/>
-
password:<
input
type
=
"password"
name
=
"j_password"
/>
<
br
/>
-
<
input
type
=
"submit"
value
=
"登录"
>
-
</
form
>
-
</
body
>
-
</
html
>
其
中,${sessionScope.SPRING_SECURITY_LAST_EXCEPTION.message}为spring
security框架自带的信息,通过配置国际化文件,实现信息的提示,展开spring security core
可以看到国际化的文件,用户可以修改其内容满足自己项目的需要,也可自定义自己的国际化文件,将spring security core
中的key-value中的value进行修改,如果采用spring自带的国际化文件,请在配置文件中写入如下的配置信息:
-
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
-
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
-
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop
=
"http://www.springframework.org/schema/aop"
-
xmlns:tx
=
"http://www.springframework.org/schema/tx"
xmlns:context
=
"http://www.springframework.org/schema/context"
-
xmlns:jee
=
"http://www.springframework.org/schema/jee"
-
xsi:schemaLocation
="
-
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
-
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
-
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">
-
-
-
-
-
-
-
<
bean
id
=
"messageSource"
class
=
"org.springframework.context.support.ResourceBundleMessageSource"
>
-
<
property
name
=
"basename"
value
=
"org.springframework.security.messages"
/>
-
</
bean
>
-
</
beans
>
(2)修改spring-security配置文件满足自定义方式
-
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
xmlns:security="http://www.springframework.org/schema/security"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http:
-
http:
-
http:
-
http:
-
-
<!--对登录页面不进行拦截,在页面后面加*表示,该页面后面可能会带一些参数-->
-
<security:http pattern="/login.jsp*"
security=
"none"
/>
-
-
<!-- 保护应用程序的所有URL,只有拥有ROLE_USER才可以访问 -->
-
<security:http auto-config="true"
>
-
<!-- login-page: 指定登录页面-->
-
<security:form-login login-page="/login.jsp"
/>
-
<security:intercept-url pattern="/**"
access=
"ROLE_USER"
/>
-
</security:http>
-
-
<!--配置认证管理器,只有用户名为user,密码为opal的用户,角色为ROLE_USER可访问指定的资源 -->
-
<security:authentication-manager>
-
<security:authentication-provider>
-
<security:user-service>
-
<security:user name="user"
password=
"opal"
authorities=
"ROLE_USER"
/>
-
</security:user-service>
-
</security:authentication-provider>
-
</security:authentication-manager>
-
</beans>
(3)运行该程序,系统自动跳到用户自定义的界面,输错代码,点击登录,错误信息提示如下:
(4)用户可以对密码进行加密,例如采用MD5的方式,假设用户密码为opal,其加密后为
22b5c9accc6e1ba628cedc63a72d57f8
此时,配置文件中的配置修改如下:
-
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
-
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
-
xmlns:security
=
"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-3.0.xsd
-
http://www.springframework.org/schema/security
-
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
-
-
-
<
security:http
pattern
=
"/login.jsp*"
security
=
"none"
/>
-
-
-
<
security:http
auto-config
=
"true"
>
-
-
<
security:form-login
login-page
=
"/login.jsp"
/>
-
<
security:intercept-url
pattern
=
"/**"
access
=
"ROLE_USER"
/>
-
</
security:http
>
-
-
-
<
security:authentication-manager
>
-
<
security:authentication-provider
>
-
<
security:password-encoder
hash
=
"md5"
/>
-
<
security:user-service
>
-
<
security:user
name
=
"user"
password
=
"22b5c9accc6e1ba628cedc63a72d57f8"
authorities
=
"ROLE_USER"
/>
-
</
security:user-service
>
-
</
security:authentication-provider
>
-
</
security:authentication-manager
>
-
</
beans
>
分享到:
相关推荐
在本篇文章中,我们将深入探讨Spring Security的核心库——`spring-security-core-3.1.0.RC1.jar`,以及它在安全领域的应用。 一、Spring Security简介 Spring Security是一款提供全面身份验证、授权和安全访问...
《Spring Security 3.1.0.RC3:企业级安全框架详解》 Spring Security是Java平台上广泛使用的安全框架,其3.1.0.RC3版本为开发者提供了强大而灵活的安全控制,使得构建安全的Web应用变得简单易行。本篇文章将深入...
**基础篇**主要介绍如何配置和使用Spring Security。本节将详细介绍Spring Security的基本配置过程,以及如何通过Maven管理项目的依赖。 - **使用Maven管理依赖**:由于Spring框架本身体积较大(Spring.jar就有2M多...
本入门篇将介绍Spring Security的基础知识,包括其核心概念、配置以及如何在实际项目中使用。 1. **核心概念** - **Authentication(认证)**: 用户身份验证是Spring Security的基础,它确认用户的身份是否合法。...
本篇文章将深入探讨“spring3mvc+hibernate4+spring-security3+dwr3整合架包”中的核心技术和概念,帮助开发者理解如何利用这些组件来创建强大的Java Web应用。 首先,Spring MVC(Model-View-Controller)是Spring...
本篇将详细探讨Spring Security 3.2.2.RELEASE的核心概念、主要特性和应用场景。 1. **核心概念** - **身份验证**:Spring Security提供了多种认证机制,如Basic Auth、Form Login、Remember Me服务等。用户通过...
本篇文章将深入探讨Spring Security 3.0.3版本的核心功能与设计理念,帮助开发者更好地理解和运用这一强大的工具。 首先,Spring Security的基础架构主要由四个核心组件构成:过滤器链、认证管理、授权管理以及会话...
本篇文章将详细探讨Spring Security 3.0.7.RELEASE版本的核心特性和实际应用场景,通过源码分析,帮助开发者更深入地理解和掌握这一强大的安全框架。 一、Spring Security概述 Spring Security旨在提供认证...
本篇文章将针对“spring-framework-5.0.2.RELEASE-dist.rar”这一官方发布的版本,详细介绍其核心特性、主要改进以及如何在实际项目中进行应用。 1. **Spring Framework概述** Spring Framework 是一个开源的应用...
本篇文章将聚焦于Spring Framework 5.0.7.RELEASE版本,详细解析其特性、组件以及官方文档中的关键知识点。 一、Spring Framework概述 Spring Framework是Java企业级应用开发的基石,它提供了全面的基础设施支持,...
### Spring Security3技术手册知识点概览 #### 一、基础篇 **1. 一个简单的Hello World** - **1.1 配置过滤器** - Spring Security通过一系列的过滤器来实现对Web应用程序的安全控制。了解如何配置这些过滤器是...
本篇将深入探讨Spring Security 3.x的核心概念和主要功能,帮助你快速理解和应用到企业级项目中。 1. **核心概念** - **认证(Authentication)**:Spring Security提供了多种认证机制,如基于表单的身份验证、...
文档的翻译者lengyun3566在博客中提到,他翻译了Spring Security3的文档,并在每篇文章的开头强调了版权信息,要求转载时必须注明出处。这表明了作者对知识产权的尊重以及对读者的责任感。 ### 第一章:Spring ...
本篇将深入探讨"spring-security-examples"项目,帮助读者理解并掌握Spring Security的核心概念和应用场景。 1. **Spring Security基础** Spring Security 的核心功能包括用户认证、权限授权、访问控制以及安全...
这篇"Spring Security进阶篇 V 自定义标签控制显示"的博客文章显然深入探讨了如何在Spring Security中实现自定义的安全控制,以便更好地管理和展示应用内容。在本文中,我们将详细解析这个主题,并与"JSP自定义标签...
Spring-WS 是一个基于 Java 的轻量级 Web Service 框架,专注于 SOAP 协议。这个框架使得开发者能够创建符合 W3C 标准的、契约优先的 Web Service 应用程序。在本篇文章中,我们将深入探讨如何使用 Spring-WS 实现 ...
Spring框架是Java开发中最受欢迎的轻量级框架之一,它为构建高效、可维护的Java应用程序提供了全面的基础设施。在本篇文章中,我们将深入探讨Spring 4.3.10版本中的关键组件,这些组件通过一系列的jar包体现出来。 ...
本篇将围绕Spring Framework 4.1.4.RELEASE版本进行深入探讨,帮助读者理解其核心概念,掌握实际开发中的应用技巧。 一、Spring Framework概述 Spring Framework是Spring.io开发团队推出的一款开源企业级应用开发...
3. **Spring Security**:提供了一套完整的安全解决方案,包括身份验证、授权等。 4. **Spring Batch**:用于处理批量任务,如大数据处理和ETL操作。 总结,Spring Framework 3.0.5.RELEASE是一个强大且成熟的框架...