我在我的JSF应用程序中使用Servlet过滤器.我的应用程序中有三组Web页面,我想在Servlet过滤器中检查这些页面的身份验证:
我的文件夹
/Admin/ *.xhtml
/Supervisor/*.xhtml
/Employee/*.xhtml
Run Code Online (Sandbox Code Playgroud)
我写得web.xml
像
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ems.admin.servlet.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Employee/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Supervisor/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
但要求如此
http://localhost:8080/EMS2/faces/Html/Admin/Upload.xhtml
Run Code Online (Sandbox Code Playgroud)
没有进入过滤器.
我必须为这3个文件夹提供安全性.
如何解决这个问题呢 ?
我想知道将我的文件编码设置为UTF-8的Java虚拟机(JVM)属性的价值是什么.
我放-Dfile.encoding=UTF8
或-Dfile.encoding=UTF-8
?
我在一篇文章中读到了HttpsURLConnection
透明地协商SSL连接的文章.
官方文件说:
该类使用HostnameVerifier和SSLSocketFactory.为这两个类定义了默认实现.[ 1 ]
这是否意味着一旦你打开一个连接
httpsCon = (HttpsURLConnection) url.openConnection();
Run Code Online (Sandbox Code Playgroud)
它已经加密了SSL/TLS而没有任何麻烦吗?
如何查看和设置标准实现的TLS版本?(应该是Java 8的TLS 1.2和Java 7的TLS 1.0)
我有一个repo,由子目录中的一些文件和一个Symfony项目组成.
如何仅在我的存储库子目录中的Symfony项目中使用Travis构建?
当我在我的gitolite存储库上创建一个新的repo时,我总是必须输入以下命令才能开始将代码推送到服务器.
git push origin master:refs/heads/master
它有什么作用 ?
我的猜测是与头部参考有关,不确定.有人可以向我解释一下吗?
当运行git svn clone
或git svn fetch
反对大型Subversion存储库(100k +提交)时,fetch会定期停止:
Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
error: The last gc run reported the following. Please correct the root cause and remove .git/gc.log.
Automatic cleanup will not be performed until the file is removed.
warning: There are too many unreachable loose objects; run 'git prune' to remove them.
gc --auto: command returned error: 255
Run Code Online (Sandbox Code Playgroud)
为了恢复,我必须按照说明操作,运行更积极的修剪和gc,删除日志文件并继续,只是在读取另一批10k提交后再次发生.
如何避免这个问题?
TL; DR:Bintray可以使用作为子密钥的签名密钥签名文件或包,还是需要主签名密钥(也是?)?
在我的私钥环中,我(最初)有一个主密钥([SC]
)及其标准加密子密钥([E]
).为此我添加了一个签名子键([S]
),我希望用它来签署软件包(上传到Bintray).后来我从密钥环中删除了主密钥以保证安全,只保留了签名和加密所需的子密钥.
我有两个ASCII装甲的私钥导出:
--export-secret-keys
并包含主密钥和两个子密钥生成的 ;--export-secret-subkeys
并仅包含子键生成的,包括添加的签名子键.试图签署上传到Bintray的包裹:
.asc
签名时,我可以看到Bintray使用主密钥进行签名.通过在这里提供私钥,我的意思是通过API调用的private_key
参数api.bintray.com/gpg
,或者在我的Bintray帐户中预先设置为私钥.
我是否希望能够使用签名子键登录Bintray?当然,我可以gpg
使用签名子键在我的本地shell中创建一个装甲/分离的asc签名,而不使用主密钥在我的密钥环中.但我可以在Bintray这样做吗?
我有一个Tomcat 7项目,它在我的Eclipse集成测试服务器上工作就像一个魅力,但无法在生产服务器上启动.
它之前也曾用于生产,但我不得不添加CORS支持,这在某种程度上使它失败了.
要添加CORS支持,我将其添加到我的pom.xml中
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.0.22</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这到我的web.xml
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
如果我再次删除这些行,它可以在生产服务器上运行,但CORS不起作用.
ClassNotFoundException
当我尝试启动应用程序时,服务器抛出一个奇怪的东西,因为该类显然存在于.war文件中.
catalina日志声称一些.jar文件无法验证,因为"jar not loaded"..jars都在.war中,所以我不明白它失败的原因.
日志输出:
卡塔利娜日志:
May 19, 2015 9:10:29 AM org.apache.catalina.util.LifecycleBase stop
INFO: The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/APIMR]] after stop() had already been called. The second call will be ignored.
May 19, 2015 9:10:29 AM org.apache.catalina.startup.HostConfig deleteRedeployResources
INFO: Undeploying context [/APIMR]
May 19, 2015 9:10:36 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat/webapps/APIMR.war
May …
Run Code Online (Sandbox Code Playgroud) 我和同事在同一个分支机构工作.现在我已经提交了一些文件并发送给代码审查,因此还有其他一些同事.现在他在我之前推送他的代码.我现在需要撤回他的更改,然后添加我的更改.但它已经承诺了.
如何获得他的更改,然后添加我的更改,而不会让历史看起来很糟糕,我不得不跳槽?我对git很新.
我有我的JMX服务器,它注册从本地文件读取的bean,并根据需要将它们提供给其他JMX客户端.可以使用"jconsole"或在Tomcat容器下运行的Java应用程序访问服务器.
我想要的是添加身份验证,以防止"未知"身份访问JMX服务器.为此,我使用以下JVM选项添加了Kerberos authentication @ server
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=5555
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false
-Djava.security.auth.login.config=./conf/jaas.conf
-Djava.security.krb5.conf=./conf/krb5.conf
-Dcom.sun.management.jmxremote.login.config=MyKrbAuth
-Ddynamic.mbean.store=./conf/mbeans
-Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)
我的jaas.conf看起来像这样>>
MyKrbAuth {
com.sun.security.auth.module.Krb5LoginModule required debug=true debugNative=true;
};
Run Code Online (Sandbox Code Playgroud)
当我使用上面的配置启动我的JMX服务器并尝试使用"jconsole"连接它时,我在客户端获得以下异常并且连接失败>>
Cipher: Crypto Permission check failed
Cipher: granted: (CryptoPermission * 128)
Cipher: requesting: (CryptoPermission AES 256)
Run Code Online (Sandbox Code Playgroud)
但在服务器身份验证似乎是成功>>
[java] [STARTED] Mbean Server
[java] Debug is true storeKey false useTicketCache false useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is …
Run Code Online (Sandbox Code Playgroud)