天天看点

回顾springside-1.0-M3

最近在研究使用Spring Security来实现我们的权限管理。在SpringSide-1.0中就通过Acegi(Spring Security前身)实现了这么一套系统,所以就回顾一下SpringSide-1.0,研究一下他们的实现方式和界面设计。

SpringSide-1.0可以从\\172.16.30.1\ItShare\第三方应用\springside 目录下找到(springside-1.0-M3-with-dependencies.zip)。

但是,之前能够运行良好的系统,现在却运行出错。通过一番研究,发现原来是存在版本冲突。现将解决办法列出如下。

解决运行出错问题

将springside-1.0-M3-with-dependencies.zip解压到本地目录(如D:\java\springside- 1.0-M3-with-dependencies,后面将以%SPRINGSIDE_HOME%引用),修改文 件%SPRINGSIDE_HOME%/lib/core/pom.xml,排除掉有冲突的Spring依赖(修改文件中对acegi-security 的依赖,排除Spring依赖):

<!--Acegi begin-->
        <!--acegi security 安全方案-->
        <dependency>
            <groupId>org.acegisecurity</groupId>
            <artifactId>acegi-security</artifactId>
            <version>1.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-remoting</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-support</artifactId>
                </exclusion>
            </exclusions>
        </dependency> 
           

将项目导入到eclipse中

  1. 首先,拷贝%SPRINGSIDE_HOME%/misc/ides/eclipse目录下的.project文件和.classpath文件到%SPRINGSIDE_HOME%下
  2. 修改%SPRINGSIDE_HOME%目录下的.classpath文件,将
    <classpathentry kind="lib" path="lib/core/poi-2.5.1-20040804.jar"/> 
               
    修改为
    <classpathentry kind="lib" path="lib/core/poi-2.5.1-final-20040804.jar"/> 
               
    <classpathentry kind="lib" path="lib/xfire/stax-utils-snapshot-20040917.jar"/> 
               
    修改为
    <classpathentry kind="lib" path="lib/xfire/stax-utils-20040917.jar"/> 
               

修改acegi配置,允许多处使用同一帐号登录

修改文件%SPRINGSIDE_HOME%/springside-bookstore/src/org/springside/bookstore/plugins/security/applicationContext-security-acegi.xml

<!-- 可以阻止某个用户名在已经成功登录进web应用的同时再进行一次成功的登录 -->
    <bean id="concurrentSessionController" class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl">
        <property name="maximumSessions">
            <value>10</value>
        </property>
        <property name="sessionRegistry">
            <ref local="sessionRegistry"/>
        </property>
        <property name="exceptionIfMaximumExceeded" value="true"/>
    </bean> 
           

继续阅读