分析和学习Spring中的jpetstore用户管理

原创 2004年07月10日 13:25:00

  存在用户的系统,必然需要用户的登录和认证,今天就通过分析Spring中自带的jpetstore的例子来学习一下如何实现在Spring构架的系统中用户登录。

1、首先从注册用户开始,先看看jpetstore-servlet.xml中关于注册用户的bean定义,从定义命名中就可以看出下面这段就是注册用户的:
  <bean name="/shop/newAccount.do" class="org.springframework.samples.jpetstore.web.spring.AccountFormController">
    <property name="petStore"><ref bean="petStore"/></property>
    <property name="validator"><ref bean="accountValidator"/></property>
    <property name="successView"><value>index</value></property>
  </bean>
 1). formView呢?从AccountFormController的构造函数中得到,原来为EditAccountForm; 
 2). EditoAccountForm.jsp中显得非常乱,其实没有多少难理解的地方,最主要的是这个form既是添加新用户的,又是编辑用户信息的,所以显得有点乱糟糟的。

2、添加好了新用户,接下来看看如何登录,在jpetstore-servlet中发现这两个相关bean定义,如下:
  <bean name="/shop/signon.do" class="org.springframework.samples.jpetstore.web.spring.SignonController">
    <property name="petStore"><ref bean="petStore"/></property>
  </bean>
  <bean name="/shop/signonForm.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
    <property name="viewName"><value>SignonForm</value></property>
  </bean>
 1). 第二个bean是在运行时用户输入用户名和密码的form,叫做SignonForm,对于这个 ParameterizableViewController,用文档里的话说这是最简单的Controller,其作用就是在运行中指向 Controller而不是直接指向jsp文件,仅此而已。
 2). SignonForm.jsp,里面就是一个简单的form,其action就是第一个bean,即/shop/signon.do,最需要注意的是 signonForwardAction,其主要作用是forward到需要输入用户名和密码的那个页面上去,这个变量哪里来的呢?看看下面:
  <bean id="secureHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="interceptors">
      <list>
        <ref bean="signonInterceptor"/>
      </list>
    </property>
    <property name="urlMap">
      <map>
        <entry key="/shop/editAccount.do"><ref local="secure_editAccount"/></entry>
        <entry key="/shop/listOrders.do"><ref local="secure_listOrders"/></entry>
        <entry key="/shop/newOrder.do"><ref local="secure_newOrder"/></entry>
        <entry key="/shop/viewOrder.do"><ref local="secure_viewOrder"/></entry>
      </map>
    </property>
  </bean>
  原来,上面的signonInterceptor实现了preHandle,因此在请求上面的map页面时,首先要经过这个Interceptor,看看 SignonInterceptor的源码,原来在其中为signon.jsp赋予一个signonForwardAction对象,呵呵,总算明白了。
 3). 接下来去学习一下SignonController,其主体部分中可以看出,首先取出用户输入的username和password,然后到数据库中验证 有没有这个用户,如果没有这个用户,返回各错误页面;如果成功,首先生成一个UserSession对象,在request的session加入这个 userSession,注意这部分代码中给出了PagedListHolder分页的简单使用方法,关于分页显示,以后再学习吧。

3、登录成功后,就可以根据不同的用户设施不同的行为了,取得用户信息,无非就是从session取出userSession即可。

基于角色和资源的用户权限控制(用SpringMVC实现)

大龄菜鸟 2017-03-03 19:25 介绍 用户权限控制几乎是每个网站都会涉及到的问题,这不仅是涉及到安全,而且还涉及到用户的体验,例如,某个用户可能只需要用到少数几个模块,那么,我们就不应...
  • u011277123
  • u011277123
  • 2017年04月01日 09:15
  • 3543

权限管理需求分析

1.1.1            权限管理 1、  一个用户(User)属于一个用户组(user group),一个用户组拥有多个用户。 2、  一个用户组(user group)只有一...
  • u012618337
  • u012618337
  • 2014年08月14日 15:43
  • 2285

Spring+Spring MVC+JDBCTemplate实现简单的用户管理功能

资源下载:http://download.csdn.net/detail/huhui_bj/8544163 1. 前言 最近一直在学习Spring相关的知识,这篇博客是一个阶段性的自我总结,写给自...
  • huhui_bj
  • huhui_bj
  • 2015年03月29日 15:06
  • 1717

Spring Security教程(6)---- 使用数据库管理用户及权限

上一章已经把表结构上传了,今天这部分主要用到的表是 SYS_USERS 用户管理表SYS_ROLES 角色管理表SYS_AUTHORITIES 权限管理表SYS_USERS_ROLES 用户角...
  • jaune161
  • jaune161
  • 2014年01月16日 14:16
  • 18412

用户权限管理spring security

分享一下自己的经验,还望大神能够指点。目前此项目只是基础的,后面会加入用户,角色,资源的管理界面。 暂时导入的jar包,等界面好后,会改成maven项目。以后会把此项目放到github上。 暂时用jq...
  • u010880345
  • u010880345
  • 2015年12月05日 15:53
  • 3087

如何进行用户行为分析

一、     什么是用户行为分析? 对于任何事情,我们要想做好它就必须先了解它,了解之后我们才能更好的驾驭它。那么对一款产品的市场表现情况我们需要如何才能清晰地知道呢?这就需要我们通过用户对该产...
  • u013946794
  • u013946794
  • 2015年08月21日 10:34
  • 810

java annotation + springMVC 实现用户角色权限管理

场景描述:现在需要对部分Controller或者Controller里面的服务方法进行权限拦截。如果存在我们自定义的注解,通过自定义注解提取所需的权限值,然后对比session中的权限判断当前用户是否...
  • zhouzhiwengang
  • zhouzhiwengang
  • 2017年02月28日 20:02
  • 1326

springSecurity查看在线用户和下线用户

参考: 文章
  • xiejx618
  • xiejx618
  • 2016年07月07日 00:35
  • 1830

学习了罗昭锋的文献管理与信息分析的感受

  • Richeagle
  • Richeagle
  • 2014年11月28日 15:25
  • 2142

springBoot+springSecurity 数据库动态管理用户、角色、权限(二)

序: 本文使用springboot+mybatis+SpringSecurity 实现数据库动态的管理用户、角色、权限管理本文细分角色和权限,并将用户、角色、权限和资源均采用数据库存储,并且自定义滤...
  • u012373815
  • u012373815
  • 2017年01月20日 18:47
  • 28177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分析和学习Spring中的jpetstore用户管理
举报原因:
原因补充:

(最多只允许输入30个字)