跟我学习Spring Security--在线宠物商店开发(四)

现在我们来用Spring Security检测一下登录功能,添加在views下添加一个main.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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
我已经登录进来了!
</body>
</html>

在LoginController里添加登录main的映射,这个方法说明请求main.do的时候,跳转main

@RequestMapping(method=RequestMethod.GET,value="/main.do")
	  public  String toMain() {
		return "main";
	  }

我们知道前面登录页面的action请求为j_spring_security_check,因此我们要设置该请求应该跳转到哪里,因此我们需要在dogstore-security.xml添加<form-login  default-target-url="/main.do" />

<http auto-config="true" use-expressions="true">
   <intercept-url pattern="/login.do" access="permitAll"/>
   <intercept-url pattern="/*" access="hasRole(‘ROLE_USER‘)"/>
   <form-login  default-target-url="/main.do" />
</http>

这样如果登录页面发送请求,default-target-url默认登录成功后跳转的url,还有其他属性可以自己去查查,这样我们用guest/guest登录,就可以登录进main.jsp。

顺便我们来说说Spring Security实现remember-me功能,修改dogstore-security.xml配置文件,添加<remember-me>声明。设置key属性为jbcpPetStore:

<http auto-config="true" use-expressions="true">
        <intercept-url pattern="/login.do" access="permitAll"/>
		<intercept-url pattern="/*" access="hasRole(‘ROLE_USER‘)"/>
		<form-login  default-target-url="/main.do" />
		 <remember-me key="jbcpPetStore"/> 
	</http>

修改登录页面remember-me的checkbox框

         <label>
            <input type="checkbox" id="_spring_security_remember_me" name="_spring_security_remember_me">
            Remember me?
          </label>

当我们再次登录时,如果Remember Me被选中,一个Remember Me的cookie将会设置在用户的浏览器中。

如果用户关闭浏览器并重新打开访问一个JBCP Pets站点上需要认证的页面,他将不会再看到登录页了。请亲自试一下——登录并将Remember Me选项选中,收藏首页,然后重启浏览器并再次访问首页。你能发现你直接登录成功并不再需要提供凭证。

Remember me功能设置了一个cookie在用户的浏览器上,它包含一个Base64编码的字符串,包含以下内容:

  • 用户的名字;
  • 过期的日期/时间;
  • 一个MD5的散列值包括过期日期/时间、用户名和密码;
  • 应用的key值,是在<remember-me>元素的key属性中定义的。

这些内容将被组合成一个cookie的值存储在浏览器中以备后用。

可以修改两个常用的配置来改变remember me功能的默认行为:


属性


描述


Key


为remember mecookie定义一个唯一的key值,以与我们的应用关联


token-validity-seconds


定义时间的长度(以秒计)。Remember me的cookie将在将被视为认证合法,并且也将用于设置cookie的过期时间。

时间: 2025-01-03 20:59:25

跟我学习Spring Security--在线宠物商店开发(四)的相关文章

跟我学习Spring Security--在线宠物商店开发(一)

本应用遵循标准的三层结构,包括web层.服务层和数据访问层,如下图所示: web层封装了MVC的代码和功能.在示例代码中,我们使用了Spring MVC框架,但是我们可以一样容易的使用Spring Web Flow,Struts甚至是一个对Spring友好的web stack如Apache Wicket. 在一个典型使用Spring Security的web应用中,大量配置和参数代码位于web层.所以,如果你没有web应用开发,尤其是Spring MVC的经验,在我们进入更复杂的话题前,你最好仔

跟我学习Spring Security--在线宠物商店开发(三)

前面我们用了简单的三步就完成了一个Spring- Secutiry的搭建,主要是通过添加auto-config属性和http元素实现的,但是在实际工作中要比这个复杂的太多,现在我们按部就班的来完善我们的权限管理,遇到理论问题,可以去查看专家博客:http://lengyun3566.iteye.com/blog关于Spring Secutiry3翻译. 现在我们为我们JBCP Pets在线商店完善一下,我们先配置自己默认的登录界面,有兴趣的可以从网上找一个,这里我不用书上的登录界面,我从网上找的

跟我学习Spring Security--在线宠物商店开发(二)

我们首先来一个简单Spring Security登录,首先需要搭建环境,这里我们用Spring+SpringMVC+Spring Security,数据库用Hibernate4+Oracle,关于jar包,Spring以及SpringMVC我用的是3.2版本的. 在web.xml中我们主要是配置Spring.SpringMVC以及Spring Security的集成. <?xml version="1.0" encoding="UTF-8"?> <

跟我学习Spring Security--在线宠物商店开发(六)

前面几节都是将用户以及权限都配置在配置文件,在企业中,这种方法是不可取的,因此,我们今天来将用户信息以及权限信息移到数据库. 为了从数据库中获取用户权限信息,我们所需要的仅仅是修改配置文件中的authentication-provider部分,将文件中的user-service替换为jdbc-user-service,替换内容如下所示: <authentication-manager alias="authenticationManager"> <authentica

跟我学习Spring Security--在线宠物商店开发(五)

我们知道将信息存在cookie中会存在一定的被拦截并被重用使用的风险,如图所示: 有一种让remember me功能更安全的方式就是将用户的IP地址绑定到cookie的内容上.让我们通过一个例子来描述怎样构建RememberMeServices的实现类来完成这个功能. 基本的实现方式是扩展o.s.s.web.authentication.rememberme.TokenBasedRememberMeServices基类,以添加请求者的IP地址到cookie本身和其他的MD5哈希元素中. 扩展这个

Spring Security和Apache Shiro开发企业级权限管理系统

原理回顾什么是权限管理?权限管理是系统的安全范畴,要求必须是合法的用户才可以访问系统(用户认证),且必须具有该 资源的访问权限才可以访问该 资源(授权).认证:对用户合法身份的校验,要求必须是合法的用户才可以访问系统.授权:访问控制,必须具有该 资源的访问权限才可以访问该 资源.权限模型:标准权限数据模型包括 :用户.角色.权限(包括资源和权限).用户角色关系.角色权限关系.权限分配:通过UI界面方便给用户分配权限,对上边权限模型进行增.删.改.查操作.权限控制:基于角色的权限控制:根据角色判断

[转]Spring Security学习总结二

原文链接: http://www.blogjava.net/redhatlinux/archive/2008/08/20/223148.html http://www.blogjava.net/redhatlinux/archive/2008/09/01/226010.html [总结-含源码]Spring Security学习总结二 Posted on 2008-09-01 10:08 tangtb 阅读(9518) 评论(12)  编辑  收藏 所属分类: Spring .Spring Se

Spring Security学习总结

1.Spring Security介绍  一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分. 用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统.用户认证一般要求用户提供用户名和密码.系统通过校验用户名和密码来完成认证过程. 用户授权指的是验证某个用户是否有权限执行某个操作.在一个系统中,不同用户所具有的权限是不同的.比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改.一般来说,系统

spring security oauth2 jwt 认证和资源分离的配置文件(java类配置版)

最近再学习spring security oauth2.下载了官方的例子sparklr2和tonr2进行学习.但是例子里包含的东西太多,不知道最简单最主要的配置有哪些.所以决定自己尝试搭建简单版本的例子.学习的过程中搭建了认证和资源在一个工程的例子,将token存储在数据库的例子等等 .最后做了这个认证和资源分离的jwt tokens版本.网上找了一些可用的代码然后做了一个整理, 同时测试了哪些代码是必须的.可能仍有一些不必要的代码在,欢迎大家赐教. 一.创建三个spring boot 工程,分