一旦你设置了realm和验证的方法,你就需要进行实际的用户登录处理。一般说来,对用户而言登录系统是一件很麻烦的事情,你必须尽量减少用户登录验证的次数。作为缺省的情况,当用户第一次请求受保护的资源时,每一个web应用都会要求用户登录。
如果你运行了多个web应用,并且每个应用都需要进行单独的用户验证,那这看起来就有点像你在与你的用户搏斗。用户们不知道怎样才能把多个分离的应用整合成一个单独的系统,所有他们也就不知道他们需要访问多少个不同的应用,只是很迷惑,为什么总要不停的登录。
Tomcat 4的“single sign-on”特性允许用户在访问同一虚拟主机下所有web应用时,只需登录一次。为了使用这个功能,你只需要在Host上添加一个SingleSignOn Valve元素即可,如下所示:
<Valve className=
"org.apache.catalina.
authenticator.SingleSignOn"
debug="0"/>
|
在Tomcat初始安装后,server.xml的注释里面包括SingleSignOn Valve配置的例子,你只需要去掉注释,即可使用。那么,任何用户只要登录过一个应用,则对于同一虚拟主机下的所有应用同样有效。使用single sign-on valve有一些重要的限制:
1.value必须被配置和嵌套在相同的Host元素里,并且所有需要进行单点验证的web应用(必须通过context元素定义)都位于该Host下。
2.包括共享用户信息的realm必须被设置在同一级Host中或者嵌套之外。
3.不能被context中的realm覆盖。
4.使用单点登录的web应用最好使用一个Tomcat的内置的验证方式(被定义在web.xml中的<auth-method>中),这比自定义的验证方式强,Tomcat内置的的验证方式包括basic、digest、form和client-cert。
5.如果你使用单点登录,还希望集成一个第三方的web应用到你的网站中来,并且这个新的web应用使用它自己的验证方式,而不使用容器管理安全,那你基本上就没招了。你的用户每次登录原来所有应用时需要登录一次,并且在请求新的第三方应用时还得再登录一次。
当然,如果你拥有这个第三方web应用的源码,而你又是一个程序员,你可以修改它,但那恐怕也不容易做。
6.单点登录需要使用cookies。
分享到:
相关推荐
tomcat-redis-session-manager-2.0.0.jar,可用于Tomcat8下Redis的Session共享,亲测可用,还需要下载另外两个jar包:commons-pool2-2.4.2.jar和jedis-2.9.0.jar,maven仓库有,此处不再上传
Apache-tomcat-7.0.109-Windows-x64
tomcat实现单点登录,SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。
用于配置 tomcat-redis-session-manager
包括commons-pool-1.6.jar,jedis-2.0.0.jar,tomcat-redis-session-manager-1.2-tomcat-6&7.jar
Tomcat7下载(apache-tomcat-7.0.85)Tomcat7下载(apache-tomcat-7.0.85)Tomcat7下载(apache-tomcat-7.0.85)Tomcat7下载(apache-tomcat-7.0.85)
tomcat-redis-session-manager-master为tomcat集群分布式session分享功能,详细信息见http://blog.csdn.net/fengshizty?viewmode=list对应内容
适合apache tomcat 7,在tomcat-7.0.57通过,解决java.lang.UnsatisfiedLinkError: D:\vleyong\tomcat-7.0.57\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform这个问题的dll文件
Tomcat做集群的时候需要需要session同步,支持Tomcat8。内含kuanrf-tomcat-redis-session-manager-1.0.jar、jedis-2.7.2.jar、commons-pool...适合于 tomcat session共享,单点登录session共享,使用redis做session共享
tomcat-redis-session-manager-1.2-tomcat-7.jar
实现多个tomcat之间session共享问题,将此jar包放入tomcat lib目录,并在content.xml中配置如下: <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> ...
tomcat 7 最新版本 apache-tomcat-7.0.109
apache-tomcat-7.0.53apache-tomcat-7.0.53apache-tomcat-7.0.53apache-tomcat-7.0.53
tomcat配置包,apache-tomcat-8.5.78.tar.gz jdk-linux-x64.tar.gz
文件包括tomcat-9.0.37的windows版的安装程序,是一个zip压缩文件,还有一份安装和配置的pdf说明文件。 个人博客地址:https://blog.csdn.net/Albert201605
1.描述:Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目。 2.教程:下载后,解压文件到指定目录,配置环境变量。
Tomcat做集群的时候需要需要session同步,本jar...内包含搭建集群需要的kuanrf-tomcat-redis-session-manager-1.0.jar、jedis-2.7.2.jar、commons-pool2-2.4.1.jar、tomcat-juli-8.0.23.jar,需要反倒tomcat的jar包下。
apache-tomcat-8.5.20.tar.gz源码包和context.xml文件,这套配置是我自己亲测可用的。。另外我用的redis4这个版本。注意:如果你使用的TOMCAT其他版本。例如tomcat6或者7这套JAR包可能不可用,tomcat8.0没有测试。...
tomcat6的log4j配置所需要的jar包、日志分割 准备三个包:log4j-1.2.17.jar tomcat-juli.jar tomcat-juli-adapters.jar 放到tomcat的lib目录或者是工程的WEB_INF/lib下
tomcat8