grails:在部署到Jetty服务器时获取重定向循环,但在开发模式下使用Jetty可以正常工作

时间:2013-10-05 05:41:13

标签: grails spring-security jetty

注意:我对此问题表示赏心悦目。我无法在类似的BUT SIMPLER问题上提出赏金,here。如果你可以帮助解决这个更简单的问题,那很好,然后我们也可以在这个问题上给出答案。在更简单的问题中,您可以很快自己创建场景。我还下载了Jetty 9.1.0 - 所以我不在乎它是否适用于9.05或9.10,两种版本都可以。

我安装了Spring Security Core以获得“通道安全性”功能,即指示哪些控制器操作需要ssl连接。

这在使用Jetty服务器的开发模式下工作正常 - 例如/ cert / page1在底部定义,它要求按预期批准https连接。

当我将(生产)WAR文件部署到Jetty 9服务器(外部托管)时,当我转到相同的控制器/操作(使用Chrome)时,我得到一个重定向循环指示,或者在Firefox上它也指示“页面”没有正确重定向“。我清除Chrome中的cookie以防万一,同样的问题。

我按照指示(使用外部证书代理机构)为Jetty 9服务器创建了SSL证书并安装它我在Jetty上查看了各种ssl文章,然后发现改变start.ini文件似乎最简单,我做了,取消注释以下行并指向我的sslcert / keystore:

 #===========================================================
 # SSL Context
 # Create the keystore and trust store for use by
 # HTTPS and SPDY
 #-----------------------------------------------------------
 jetty.keystore=sslcert/keystore
 jetty.keystore.password=xxxxx
 jetty.keymanager.password=xxxxx
 jetty.truststore=sslcert/keystore
 jetty.truststore.password=xxxxx
 jetty.secure.port=8443
 etc/jetty-ssl.xml


 #===========================================================
 # HTTPS Connector
 # Must be used with jetty-ssl.xml
 #-----------------------------------------------------------
 jetty.https.port=8443
 etc/jetty-https.xml

我是否可以告诉Jetty是否会接受任何https页面请求?在它的日志中,它似乎从我的所作所为,即:

  2013-10-04 20:48:43.520:INFO:oejs.ServerConnector:main: Started       ServerConnector@73c87405{HTTP/1.1}{0.0.0.0:80}
  2013-10-04 20:48:43.692:INFO:oejs.ServerConnector:main: Started ServerConnector@4194f034{SSL-http/1.1}{0.0.0.0:8443}

另外,对于定义我所拥有的安全频道的我的Config.groovy:

grails.plugins.springsecurity.secureChannel.definition = [
  '/cert/cpnimember': 'REQUIRES_INSECURE_CHANNEL',
  '/cert/page1': 'REQUIRES_SECURE_CHANNEL',
  '/cert/page2': 'REQUIRES_SECURE_CHANNEL',
  '/cert/page3': 'REQUIRES_SECURE_CHANNEL',
  '/cert/page4': 'REQUIRES_INSECURE_CHANNEL'
]

我不确定如何调试它。我想在我的jetty 9服务器上找一些需要https / ssl的页面,以确保它没有弹簧安全核心定义的通道,但不知道那是什么。

您能提供有关如何调试此错误或出错的帮助吗?

感谢。


这个问题与我创建的simplified question类似,并提供了赏金。既然已经授予了另一个问题的赏金,我可以删除这个问题。但是,它不允许我删除或删除它,所以......

1 个答案:

答案 0 :(得分:0)

在我看来,Jetty正在重定向匿名请求以登录(经过身份验证)到某个登录屏幕。是否存在登录屏幕?