我一直没有在这里发帖,因为有时它似乎很简单,但我现在已经接近了。在我的一个JBOSS EAP 6.4实例中,我们在HTTP上有以下连接:
server:9990/console
server:9080/application1
server:9085/application2
我的证书等都已排序,因此我希望上面的内容重定向到以下内容(无论用户是输入了http还是https):
https://server:9443/console
https://server:9180/application1
https://server:9185/application2
一旦我开始工作,就不会使用HTTP端口......希望如此。无论如何,我一直在谷歌搜索几个小时,我无法弄清楚这一点。到目前为止,我在standalone-full-ha.xml中的虚拟服务器条目下已经有了这个:
<rewrite pattern="^/(.*)$" substitution="https://server:9443/console" flags="RL">
<condition test="%{SERVER_PORT}=9990" pattern="on" />
</rewrite>
<rewrite pattern="^/(.*)$" substitution="https://server:9180/" flags="RL">
<condition test="%{SERVER_PORT}=9080" pattern="on" />
</rewrite>
<rewrite pattern="^/(.*)$" substitution="https://server:9185/" flags="RL">
<condition test="%{SERVER_PORT}=9085" pattern="on" />
</rewrite>
我可能在这里遗漏了一些明显的东西,但我似乎无法看到它是什么。在访问URL时,没有任何事情发生,因为它们没有重定向。
答案 0 :(得分:0)
我一直在研究这个问题,发现我无法控制管理URL /使用Web子系统来控制它们的行为。
我先前遇到的关键问题是我自己做的,因为我花了大部分时间试图弄清楚为什么9990至9443端口重写无法正常工作,而忽略了另外两个很好的事实。
Web /应用程序重写了我在原始问题中提到的工作:)
答案 1 :(得分:0)
尝试根据Redirect from HTTP to HTTPS in jboss eap 6.4的解决方案改编这些内容
<rewrite pattern="^/(console.*)$" substitution="https://server:9443/$1" flags="RL">
<condition test="%{HTTPS}" pattern="off" />
</rewrite>
<rewrite pattern="^/(application1.*)$" substitution="https://server:9180/$1" flags="RL">
<condition test="%{HTTPS}" pattern="off" />
</rewrite>
<rewrite pattern="^/(application2.*)$" substitution="https://server:9185/$1" flags="RL">
<condition test="%{HTTPS}" pattern="off" />
</rewrite>
答案 2 :(得分:-2)
请修改如下。
/subsystem=web/virtual-server=default-host/rewrite=jboss:add(pattern="^/$", substitution="/context B/", flags="L,R=302")
JBoss CLI命令:
final String delim = "DELIM";
String token1 = "AAAAA";
String token2 = "BBBBB|ZUMMY";
final String input = token1 + delim + token2;
final StringTokenizer tokenizer = new StringTokenizer(input, delim);
final String text1 = tokenizer.nextToken();
final String text2 = tokenizer.nextToken();
System.out.println("token1=" + text1);
System.out.println("token2=" + text2);
System.out.println();