今天我开始在我的Java EE项目中实现SSL。一切正常,直到我尝试直接访问已注销客户的受保护区域。不会被重定向到登录页面,而是出现了一个问号。
我正在使用Tomcat 7.0和JSF 2.1 受保护的页面是:
奇怪的是,只有访问SubDir / customer中的某些页面才会显示此问号!通过尝试访问所有其他人(包括/ admin中的那些人),可以正确显示“登录”页面(所有页面的结构都相同)。
最后,我使用TCP端口443而不是8443正确启动并运行网站。现在两个浏览器都能正确显示登录页面,然后才能有人访问受保护的页面。
所以我的问题。有没有人知道为什么如果使用端口8443会出现这种情况?还有一种方法可以使用端口8443吗?
下面你可以找到tomcats server.xml文件。 提前谢谢!
<?xml version="1.0" encoding="UTF-8"?>
<Server
port="8005"
shutdown="SHUTDOWN" >
<Listener
SSLEngine="on"
className="org.apache.catalina.core.AprLifecycleListener" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource
name="UserDatabase"
auth="Container"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"
type="org.apache.catalina.UserDatabase" />
</GlobalNamingResources>
<Service name="Catalina" >
<Connector
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="443" />
<Connector
SSLEnabled="true"
clientAuth="false"
keystoreFile="C:\Program Files (x86)\apache-tomcat-7.0.30\conf\BookStore.keystore"
keystorePass="myPwd"
maxThreads="200"
port="443"
protocol="HTTP/1.1"
scheme="https"
secure="true"
sslProtocol="TLS" />
<Connector
port="8009"
protocol="AJP/1.3"
redirectPort="443" />
<Engine
name="Catalina"
defaultHost="localhost" >
<Realm className="org.apache.catalina.realm.LockOutRealm" >
<Realm
className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
</Realm>
<Realm
className="org.apache.catalina.realm.JDBCRealm"
connectionURL="jdbc:mysql://localhost/bookstore?user=bookstore&password=book$tore"
driverName="org.gjt.mm.mysql.Driver"
roleNameCol="role"
userCredCol="pwd"
userNameCol="eMail"
userRoleTable="roles"
userTable="customer" />
<Host
name="localhost"
appBase="webapps"
autoDeploy="true"
unpackWARs="true" >
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
pattern="%h %l %u %t "%r" %s %b"
prefix="localhost_access_log."
suffix=".txt" />
<Context
docBase="BookStore"
path="/BookStore"
reloadable="true"
source="org.eclipse.jst.jee.server:BookStore" />
</Host>
</Engine>
</Service>
</Server>
答案 0 :(得分:1)
当您尝试在https连接上使用http时,会出现该问号。您无法看到正在使用的协议,因为FF中的默认设置会隐藏协议。
在浏览器网址中输入 about:config ,然后查找 browser.urlbar.trimURLs ,并将其设置为 false 。现在,您将在浏览器网址前看到 http:// 。将其切换为httpS,问号将消失。
编辑:您尝试访问的网址显示在标签中,它是 http 而不是 https 。