好好信任你们。
我的web应用程序运行在tomcat 6.0.43上,不使用apache或nginx。
我已经强制我的网络从超文本传输协议重定向到https使用:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint></security-constraint>
在下面的何处添加此类代码
标题添加严格-运输-安全"max-age=15768000"
还是tomcat没有这个功能?或者我需要在我的每个java web应用程序控制器中进行修改。
使用url-重写。
web-INF/classes
目录中请注意,这不是特定于HSTS的:您可以使用url重写进行任何操作。
您可以使用过滤器添加它。将以下代码段添加到web。xml:
<filter>
<filter-name>HSTSFilter</filter-name>
<filter-class>security.HSTSFilter</filter-class>
</filter>
然后在你的webapp中创建一个过滤器:
package security;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
public class HSTSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) res;
if (req.isSecure())
resp.setHeader("Strict-Transport-Security", "max-age=31622400; includeSubDomains");
chain.doFilter(req, resp);
}
}
也可以使用全局web添加过滤器。xml(conf/web.xml)。
如果您能够使用Tomcat 7或8,您可以激活内置的HSTS过滤器。取消在tomcat/conf/web.xml中的过滤器定义
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
</filter>
并添加一个有用的最大年龄参数:
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
不要忘记取消对筛选器映射的注释:
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
我想添加一些在WebApp之前加载的库,比如将Jar添加到。我怎么能那么做? Eclipse中的等效项: 信息:validateJarFile([...]\WEB-INF\lib[...].jar)-jar未加载。参见Servlet规范2.3,第9.7.2节。违规类:javax/servlet/servlet.class
问题内容: 我设法在Mac上安装了spyder并可以正常运行,但是我想添加一些默认情况下不包含的模块(mahotas和pymorph)。 我通过在终端上的easy_install进行了安装,并且两者似乎都安装了,没有任何错误消息。从终端运行python并使用 import mahotas 和 import pymorph 可以正常工作而不会出现错误消息。但是,当我在spyder中的脚本中运行相同的
我是马文的新手。所以保持冷静;) 在我的公司,我们正在使用Sonatype Nexus存储库管理器。 现在我发现了两个大型存储库,其中包含我正在搜索的特殊工件(JCraft-Jsch): http://search.maven.org/ (http://mvnrepository.com/artifact/com.jcraft/jsch/0.1.53) 现在,我想知道如何将上面的一个(或两个)存储
我已经下载并安装了Tomcat9,但是在Eclipse>Window>Preferences>Server>Runtime Environment上,单击Add后,我只看到Tomcat7和Tomcat8,而看不到Tomcat9。 我所做的:1)将tomcat 9安装到本地服务器;2)将eclipse更新到Mars(最新版本为2015-11-25);3)安装eclipse“JST服务器适配器”和“J
我试图在运行时环境中添加一个tomcat服务器。我成功安装了tomcat。我已经有了Java EE eclipse,但是在我点击窗口下的搜索之后-
问题内容: 我们有一个简单的项目,我们从套接字读取数据,并希望用即将到来的数据填充表,但是我们找不到找到将行添加到尚未创建的对象的方法,只能在以下位置找到添加行的方法:表的创建时间。 是否可以向中动态添加行,或者有更好的替代对象来处理这种显示数据的方式? 编辑 :非常感谢您的回答。 他们三个看起来都很有前途,但是我只选择一个,我认为最好的就是纪尧姆的。 问题答案: 您应该创建一个自定义。A 实际上