方法一:在应用项目中修改web.xml,增加授权区。
web.xml:
<!-- 所有链接自动跳转到https -->
<security-constraint>
<web-resource-collection>
<web-resource-name>sslapp</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
以上这种方式,会导致在IE中无法下载xls\swf等文件,但在firefox中没有问题
方法二:是在用户登录时,用acegi配置处理,强制使用https
项目中的welcome file:index.jsp跳转至一个不允许匿名访问的地址,index.jsp如下列:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<script>
function redirect() {
self.location='menu/homepage.jsp';
}
redirect();
</script>
</head>
</html>
而在验证配置中,允许匿名(未登录)访问的只有login.jsp
<bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager">
<bean class="org.acegisecurity.vote.UnanimousBased">
<property name="allowIfAllAbstainDecisions" value="true"/>
<property name="decisionVoters">
<list>
<ref local="authService"/>
<bean class="org.acegisecurity.vote.AuthenticatedVoter"/>
</list>
</property>
</bean>
</property>
<property name="objectDefinitionSource">
<value>
<!-- CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON-->
PATTERN_TYPE_APACHE_ANT
/login.jsp=IS_AUTHENTICATED_ANONYMOUSLY
/**=IS_AUTHENTICATED_REMEMBERED
</value>
</property>
</bean>
所以用户在未登录情况下所进行的连接均会经过exceptionTranslationFilter
<bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">
<property name="authenticationEntryPoint">
<bean class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/login.jsp"/>
<property name="forceHttps" value="true"/>
</bean>
</property>
<property name="accessDeniedHandler">
<bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
<property name="errorPage" value="/403.jsp"/>
</bean>
</property>
</bean>
因为
forceHttps=true,所以会直接连接到https的登录界面,登录后将会一直使用的是http连接
此种情况只有在用户登录后,又手动输入http连接的情况下无法跳转至https
此种方式在用户登录后的页面中如果存在非https的链接,IE可能会提示下列信息:
“是否只查看安全传送的网页内容?网页包含的内容将不使用安全的https连接传送,可能危及到整个网页的安全”
遇到上述IE的提示时,对IE进行以下设置即不会再出现提示:
在IE中选择“工具”-->"Internet选项"-->“安全”-->“自定义安全级别”-->在“其他”分类里找到“显示混合内容”选“启用”即可。(可参见附件)
分享到:
相关推荐
在当今网络环境中,信息的安全性越来越受到重视,尤其是对于涉及敏感...以上是关于如何在Tomcat中配置HTTPS并实现HTTP自动跳转至HTTPS的详细步骤和知识点说明。希望这些信息能够帮助到需要进行Tomcat SSL配置的用户。
- 最重要的是,在资源设置中添加**HTTP自动跳转至HTTPS**的策略。 - 同样设置源NAT为自动映射服务。 4. **测试与验证** - 在完成所有配置后,需要确保防火墙已正确映射了**80端口**和**443端口**。 - 测试HTTP...
countdownElement.textContent = `${seconds}秒后将自动跳转至首页...`; setTimeout(countdown, 1000); } else { window.location.href = 'http://www.example.com'; } } setTimeout(countdown, 1000); ...
Apache服务器在实现从HTTP到HTTPS的自动跳转时,提供了多种方法来确保所有HTTP请求都能安全地重定向到HTTPS加密连接。HTTP到HTTPS的跳转对于网站的安全性和用户体验至关重要,因为HTTPS可以保护用户数据,防止中间人...
摘要:本文主要介绍了阿里云 SSL 证书配置 HTTPS 和 SLB 的 HTTP 跳转到 HTTPS 的详细笔记总结,包括两种方案:一种是 SSL 证书配置在 SLB 上,访问 HTTP:// 会自动跳转到 HTTPS://;另一种是 SSL 证书配置在 Nginx ...
实现HTTP到HTTPS的自动跳转,我们可以利用Apache的Rewrite模块,这个模块提供了URL重写功能,常用于实现SEO优化、路径简化或者如我们当前情况下的安全跳转。 以下是Apache配置的详细步骤: 1. **启用Rewrite模块**...
综上所述,HTTP自动跳转到HTTPS的配置方法包括了软件安装、服务器配置和代码层面的调整。通过这些步骤,网站能够提供更安全的数据传输方式,从而保护用户数据安全和网站的信誉。需要注意的是,正确配置HTTPS不仅仅是...
然而,有些用户可能仍习惯于输入HTTP而非HTTPS,这时就需要通过配置Nginx来实现从HTTP到HTTPS的自动跳转。本篇文章将详细介绍三种在Nginx中实现强制HTTPS访问的方法。 1. **Nginx的Rewrite方法** 这是最常见的方法...
在Laravel框架中,实现...以上就是Laravel应用中解决强制跳转HTTPS问题的多种方法,通过服务器配置或框架内配置,可以有效地解决网站安全性问题,确保网站的数据传输安全,避免敏感信息泄露,满足当前网络安全的要求。
NULL 博文链接:https://zliguo.iteye.com/blog/2344573
在IT行业中,根据IP地址自动跳转到相应城市地区的功能是一项常见的需求,特别是在地理定位、个性化服务和内容分发等领域。这个场景主要涉及到网络编程、IP解析和PHP语言的运用。接下来,我们将深入探讨实现这一功能...
在练习中,我们常常遇到一种问题就是,怎么实现页面N秒之后自动跳转呢? 我自己遇到问题和查找资料,总结了3个方法 方法1: 最简单的一种:直接在前面<head>里面添加代码: 复制代码代码如下:...
- **多语言版本切换**:在多语言网站中,用户选择不同语言版本后,可以通过`refresh`自动跳转至相应语言版本的页面。 #### 五、注意事项 1. **SEO影响**:虽然`refresh`跳转在用户体验上表现良好,但对于搜索引擎...
本压缩包文件包含的“微信跳转_跳转PHP_跳转”主题,是关于如何利用PHP编程语言实现微信内部浏览器到外部浏览器的自动跳转技术。下面我们将详细探讨这一技术及其背后的原理。 首先,我们要理解微信的内嵌浏览器...
而“安全跳转单页html”则表明该源码设计了一个单一页面,其主要功能是执行安全的URL跳转,这通常通过JavaScript、Meta刷新或HTTP头信息来实现。 在开发和编程的标签下,我们可以推断这个源码可能包含了HTML基础...