SuperMap

SuperMap iServer之CAS单点登陆搭建流程

2019-07-23  本文已影响3人  非法小恋

一、安装CAS

1.环境准备

2.安装CAS

1.将cas-server-3.5.2-release.zip解压后,将cas-server-3.5.2\module\cas-server-webapp-3.5.2.war包部署至Tomcat的webapps目录下,为了登录方便,我们将cas-server-webapp-3.5.2.war重命名为cas.war。

2.启动Tomcat,访问http://localhost:8080/cas 能正常跳转则表示部署成功。

image
虽然 CAS Server 已经部署成功,但这只是一个缺省的实现,在默认认证规则,只要输入用户名和密码相同,就可以登录,比如aaa/aaa,bbb/bbb。
image

二、扩展认证接口(JDBC)

当然,在实际使用的时候,一般会将用户名和密码数据库进行认证,下面介绍3种存储方式。
用户存储类型:

三、存储配置

1.数据库准备

#SqLite和MySQL可使用如下语句创建表
CREATE TABLE app_user (
username varchar(30) NOT NULL ,
password varchar(45) NOT NULL ,
role varchar(40) NOT NULL
);
#Oralce可使用如下语句创建表
CREATE TABLE app_user (
username varchar(30) NOT NULL ,
password varchar(45) NOT NULL ,
role varchar(40) NOT NULL
);

2. 添加测试数据

INSERT INTO app_user VALUES ('lisi', 'supermap', 'u1');
INSERT INTO app_user VALUES ('zhangsan', 'supermap', 'u1');
INSERT INTO app_user VALUES ('supermap', 'supermap', 'cas_SYSTEM');

(注意)SqLite数据库创建完成后,将Users.db文件放到Tomcat\webapps\cas中。


image

3.添加依赖

将下列依赖jar放到,Tomcat\webapps\cas\WEB-INF\lib中

4编辑webapps\cas\WEB-INF\deployerConfigContext.xml文件。

5.搜索SimpleTestUsernamePasswordAuthenticationHandler,将默认规则其所在bean注释,新增

<bean id="primaryAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="select password from app_user where username =?"/>
</bean>

6.然后在添加一个bean,这个bean是跟authenticationManager同一级别的,注意这个很重要,这个bean不是跟第5步之前那个bean class同级

SqLite配置

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.sqlite.JDBC</value>
</property>
<property name="url">
<value>jdbc:sqlite:../webapps/cas/Users.db</value>
</property>
<property name="username">
<value> </value>
</property>
<property name="password">
<value> </value>
</property>
</bean>

MySQL配置

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/cas?useUnicode=true&amp;characterEncoding=utf-8</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>supermap</value></property>
</bean>

Oracle配置

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property>
<property name="url"><value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value></property>
<property name="username"><value>system</value></property>
<property name="password"><value>supermap</value></property>
</bean>

7.将原有的attributeRepository注释,新增

<bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
<constructor-arg index="0" ref="dataSource"/>
<constructor-arg index="1" value="select * from app_user where {0}"/>
<property name="queryAttributeMapping">
<map>
<entry key="username" value="username"/>
</map>
</property>
<property name="resultAttributeMapping">
<map>
<entry key="username" value="username"/>
<entry key="password" value="password"/>
<entry key="role" value="role"/>
</map>
</property>
</bean>

8.serviceRegistryDao中增加<property name="ignoreAttributes" value="true"/>

image

9.重启Tomcat,即可用数据库中用户名&密码登陆验证。

四、iServer验证

1.登陆iServer,访问http://localhost:8090/iserver/manager/security/casconfig

2.配置iServerCAS

由于我们的数据库表结果如下:


image
image

3.退出当前用户登陆,访问http://localhost:8090/iserver/services/security/login

image

4.点击使用CAS账号登陆,输入测试账户lisi/supermap 或 自定义属性值的账户supermap/supermap登陆

image

最终可以看到当前登陆账户为CAS数据库中登陆账户


image image
(转发请注明出处:https://www.jianshu.com/u/829cbce64381 如发现有错,请留言,谢谢)
上一篇下一篇

猜你喜欢

热点阅读