当前位置: 首页 > news >正文

南昌网站搭建服务淘宝店铺怎么推广和引流

南昌网站搭建服务,淘宝店铺怎么推广和引流,wordpress图片本地化,个人网站可以做论坛么接上篇 单点登录(SSO)解决方案之 CAS 入门案例 服务端数据源设置: 开发中,我们登录的user信息都是存在数据库中的,下面说一下如何让用户名密码从我们的数据库表中做验证。 案例中我最终把cas的tomcat放在了192.168.44.…

接上篇 单点登录(SSO)解决方案之 CAS 入门案例

服务端数据源设置:

开发中,我们登录的user信息都是存在数据库中的,下面说一下如何让用户名密码从我们的数据库表中做验证。

案例中我最终把cas的tomcat放在了192.168.44.31这一台虚拟机上,我的mysql数据库也在这个服务器上,里面有一个test数据库,其中有一张tb_user表:

两个用户,密码都是md5加密的123456。

 

下面我们修改配置数据源的配置:

1,修改cas服务端中web-inf下deployerConfigContext.xml ,添加如下配置(数据库设置及使用c3p0,密码MD5加密及账号密码的sql设置)

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  p:driverClass="com.mysql.jdbc.Driver"  p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"  p:user="root"  p:password="root" /> 
<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"  c:encodingAlgorithm="MD5"  p:characterEncoding="UTF-8" />  
<bean id="dbAuthHandler"  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"  p:dataSource-ref="dataSource"  p:sql="select password from tb_user where username = ?"  p:passwordEncoder-ref="passwordEncoder"/> 

然后在配置文件开始部分找到如下配置

<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"><constructor-arg><map>               <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /><entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" /></map></constructor-arg>      <property name="authenticationPolicy"><bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" /></property>
</bean>

把其中的这一行:

 <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />

修改为:

<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>

最终这个文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!--Licensed to Jasig under one or more contributor licenseagreements. See the NOTICE file distributed with this workfor additional information regarding copyright ownership.Jasig licenses this file to you under the Apache License,Version 2.0 (the "License"); you may not use this fileexcept in compliance with the License.  You may obtain acopy of the License at the following location:http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing,software distributed under the License is distributed on an"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANYKIND, either express or implied.  See the License for thespecific language governing permissions and limitationsunder the License.-->
<!--
| deployerConfigContext.xml centralizes into one file some of the declarative configuration that
| all CAS deployers will need to modify.
|
| This file declares some of the Spring-managed JavaBeans that make up a CAS deployment.  
| The beans declared in this file are instantiated at context initialization time by the Spring 
| ContextLoaderListener declared in web.xml.  It finds this file because this
| file is among those declared in the context parameter "contextConfigLocation".
|
| By far the most common change you will need to make in this file is to change the last bean
| declaration to replace the default authentication handler with
| one implementing your approach for authenticating usernames and passwords.
+--><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:c="http://www.springframework.org/schema/c"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:util="http://www.springframework.org/schema/util"xmlns:sec="http://www.springframework.org/schema/security"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"><!--| The authentication manager defines security policy for authentication by specifying at a minimum| the authentication handlers that will be used to authenticate credential. While the AuthenticationManager| interface supports plugging in another implementation, the default PolicyBasedAuthenticationManager should| be sufficient in most cases.+--><bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"><constructor-arg><map><!--| IMPORTANT| Every handler requires a unique name.| If more than one instance of the same handler class is configured, you must explicitly| set its name to something other than its default name (typically the simple class name).--><entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /><entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" /></map></constructor-arg><!-- Uncomment the metadata populator to allow clearpass to capture and cache the passwordThis switch effectively will turn on clearpass.<property name="authenticationMetaDataPopulators"><util:list><bean class="org.jasig.cas.extension.clearpass.CacheCredentialsMetaDataPopulator"c:credentialCache-ref="encryptedMap" /></util:list></property>--><!--| Defines the security policy around authentication. Some alternative policies that ship with CAS:|| * NotPreventedAuthenticationPolicy - all credential must either pass or fail authentication| * AllAuthenticationPolicy - all presented credential must be authenticated successfully| * RequiredHandlerAuthenticationPolicy - specifies a handler that must authenticate its credential to pass--><property name="authenticationPolicy"><bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" /></property></bean><!-- Required for proxy ticket mechanism. --><bean id="proxyAuthenticationHandler"class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"p:httpClient-ref="httpClient" p:requireSecure="false"/><!--| TODO: Replace this component with one suitable for your enviroment.|| This component provides authentication for the kind of credential used in your environment. In most cases| credential is a username/password pair that lives in a system of record like an LDAP directory.| The most common authentication handler beans:|| * org.jasig.cas.authentication.LdapAuthenticationHandler| * org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler| * org.jasig.cas.adaptors.x509.authentication.handler.support.X509CredentialsAuthenticationHandler| * org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler--><bean id="primaryAuthenticationHandler"class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"><property name="users"><map><entry key="casuser" value="Mellon"/><entry key="root" value="root"/></map></property></bean><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  p:driverClass="com.mysql.jdbc.Driver"  p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"  p:user="root"  p:password="root" /> <bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"  c:encodingAlgorithm="MD5"  p:characterEncoding="UTF-8" />           <bean id="dbAuthHandler"  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"  p:dataSource-ref="dataSource"  p:sql="select password from tb_user where username = ?"  p:passwordEncoder-ref="passwordEncoder"/>  <!-- Required for proxy ticket mechanism --><bean id="proxyPrincipalResolver"class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" /><!--| Resolves a principal from a credential using an attribute repository that is configured to resolve| against a deployer-specific store (e.g. LDAP).--><bean id="primaryPrincipalResolver"class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver" ><property name="attributeRepository" ref="attributeRepository" /></bean><!--Bean that defines the attributes that a service may return.  This example uses the Stub/Mock version.  A real implementationmay go against a database or LDAP server.  The id should remain "attributeRepository" though.+--><bean id="attributeRepository" class="org.jasig.services.persondir.support.StubPersonAttributeDao"p:backingMap-ref="attrRepoBackingMap" /><util:map id="attrRepoBackingMap"><entry key="uid" value="uid" /><entry key="eduPersonAffiliation" value="eduPersonAffiliation" /> <entry key="groupMembership" value="groupMembership" /></util:map><!-- Sample, in-memory data store for the ServiceRegistry. A real implementationwould probably want to replace this with the JPA-backed ServiceRegistry DAOThe name of this bean should remain "serviceRegistryDao".+--><bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"p:registeredServices-ref="registeredServicesList" /><util:list id="registeredServicesList"><bean class="org.jasig.cas.services.RegexRegisteredService"p:id="0" p:name="HTTP and IMAP" p:description="Allows HTTP(S) and IMAP(S) protocols"p:serviceId="^(https?|imaps?)://.*" p:evaluationOrder="10000001" /><!--Use the following definition instead of the above to further restrict accessto services within your domain (including sub domains).Note that example.com must be replaced with the domain you wish to permit.This example also demonstrates the configuration of an attribute filterthat only allows for attributes whose length is 3.--><!--<bean class="org.jasig.cas.services.RegexRegisteredService"><property name="id" value="1" /><property name="name" value="HTTP and IMAP on example.com" /><property name="description" value="Allows HTTP(S) and IMAP(S) protocols on example.com" /><property name="serviceId" value="^(https?|imaps?)://([A-Za-z0-9_-]+\.)*example\.com/.*" /><property name="evaluationOrder" value="0" /><property name="attributeFilter"><bean class="org.jasig.cas.services.support.RegisteredServiceRegexAttributeFilter" c:regex="^\w{3}$" /> </property></bean>--></util:list><bean id="auditTrailManager" class="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager" /><bean id="healthCheckMonitor" class="org.jasig.cas.monitor.HealthCheckMonitor" p:monitors-ref="monitorsList" /><util:list id="monitorsList"><bean class="org.jasig.cas.monitor.MemoryMonitor" p:freeMemoryWarnThreshold="10" /><!--NOTEThe following ticket registries support SessionMonitor:* DefaultTicketRegistry* JpaTicketRegistryRemove this monitor if you use an unsupported registry.--><bean class="org.jasig.cas.monitor.SessionMonitor"p:ticketRegistry-ref="ticketRegistry"p:serviceTicketCountWarnThreshold="5000"p:sessionCountWarnThreshold="100000" /></util:list>
</beans>
View Code

 

由于我们修改成了从mysql中验证,所以需要添加三个jar包:

将以下三个jar包放入webapps\cas\WEB-INF\lib下:

c3p0-0.9.1.2.jar
cas-server-support-jdbc-4.0.0.jar
mysql-connector-java-5.1.32.jar

以上我们就完成了从mysql中验证的操作,请自行测试。

 

CAS服务端登录界面改造:

上一篇我们也看到了,cas的登录页面很丑,所以我们下面把登录页面换成我们自己的登录页面。

首先是拷贝资源:

1,首先将我们自己登录页面所需的login.html拷贝到cas下WEB-INF\view\jsp\default\ui 目录下

2,将登录页面需要的js,css,img等目录放到cas目录下

3,将原来的casLoginView.jsp 改名(可以为之后的修改操作做参照),将login.html改名为casLoginView.jsp,也就是将cas原本的登录页面替换为我们自己的

 

其次是修改页面:

编辑我们的新登录页面casLoginView.jsp(可参照之前的登录页面):

添加指令:

<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

修改form标签:

<form:form method="post" id="fm1" commandName="${commandName}" htmlEscape="true" class="自己页面的样式">......
</form:form>

修改用户名框:

<form:input placeholder="邮箱/用户名/手机号" class="span2 input-xfat" id="username" size="25" tabindex="1" accesskey="${userNameAccessKey}" path="username" autocomplete="off" htmlEscape="true" />

修改密码框:

<form:password placeholder="请输入密码" class="span2 input-xfat" id="password" size="25" tabindex="2" path="password"  accesskey="${passwordAccessKey}" htmlEscape="true" autocomplete="off" />

修改登录按钮:

<input type="hidden" name="lt" value="${loginTicket}" />
<input type="hidden" name="execution" value="${flowExecutionKey}" />
<input type="hidden" name="_eventId" value="submit" /><input class="sui-btn btn-block btn-xlarge btn-danger" name="submit" accesskey="l" value="登&nbsp;&nbsp;录" tabindex="4" type="submit" />

 

错误提示:

登录失败后需要提示,在你自己的登录页面错误提示的位置将错误提示替换为:

<form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" />

这个错误提示默认是英文的,在WEB-INF\classes目录下的messages.properties文件中

authenticationFailure.AccountNotFoundException=Invalid credentials.
authenticationFailure.FailedLoginException=Invalid credentials.

我们需要修改成中文,并编辑自己的错误提示信息:

首先,设置国际化为zn_CN ,修改cas-servlet.xml:

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="zh_CN" />

然后,修改messages_zh_CN.properties文件,在其末尾加上:(第一个是用户名不存在时的错误提示,第二个是密码错误的提示)

authenticationFailure.AccountNotFoundException=\u7528\u6237\u4E0D\u5B58\u5728.
authenticationFailure.FailedLoginException=\u5BC6\u7801\u9519\u8BEF.

可以看出这个文件中是没有中文的,所以我们的中文提示需要转成Unicode,替换上面绿色的部分即可。

这时候可以把cas所在的tomcat放到虚拟机上运行了。

 

到此,我们的单点登录解决方案之 CAS 暂时告一段落。

 

下一篇:单点登录(SSO)解决方案之 CAS客户端与Spring Security集成

 

后续补充:Demo及所需资料百度云地址:链接:https://pan.baidu.com/s/1Dr4Aq9-FWGnL3kRCZ3uwVA 密码:0i30

转载于:https://www.cnblogs.com/blazeZzz/p/9580974.html

http://www.lbrq.cn/news/2696221.html

相关文章:

  • 搏彩网站开发建设免费自己制作网站
  • 天津龙腾公司做网站java培训
  • 企业公司网站制作网站seo优化分析
  • 湖南网站建设制作网站seo思路
  • 网站推广软文案例奶盘seo伪原创工具
  • 专业手机网站设计优化英文
  • 自己开网店网络推广优化seo
  • 网站开发后服务费深圳谷歌网络推广公司
  • 公司网站能自己做么友情链接工具
  • 定制建站网站建设google官网入口下载
  • 长葛网站建设线上营销平台
  • 什么网站做海报app推广平台网站
  • 南宁公司做网站阿里云万网域名购买
  • 雄安做网站互联网运营培训课程
  • 那里做网站最好先做后付费的代运营
  • 个人网站免费的吗seo怎么推排名
  • 多种语言网站怎么做自动点击器永久免费版
  • 网站开发后乙方把源代码交给甲方app拉新佣金排行榜
  • 织梦网站seo东莞网站seo优化托管
  • 衡水网站设计怎么做免费推广网站大全集合
  • 中国国际贸易单一窗口网站吉林网络seo
  • 怎么撤销网站备案营销网站制作公司
  • iis如何做网站怎么去推广自己的网站
  • 怎样做视频电影网站seo如何优化关键词排名
  • 怎样建手机网站白帽seo是什么
  • 聊天网站制作教程如何快速推广app
  • 电脑网站建设方案武汉seo优化公司
  • 哪个网站做质量认证书范本聊城seo整站优化报价
  • 公司网站做么做百度排名上海推广外包
  • seo网站建站公司的主页虎扑体育网体育
  • Java项目中地图功能如何创建
  • ASP.NET 上传文件安全检测方案
  • 【GESP】C++一级知识点之【集成开发环境】
  • 嵌入式硬件——ARM
  • Kafka的一条消息的写入和读取过程原理介绍
  • Web学习笔记5