SSL
对于 SSL 的支持,Shiro 只是判断当前 url 是否需要 SSL 登录,如果需要自动重定向到 https 进行访问。
首先生成数字证书,生成证书到 D:\localhost.keystore
使用 JDK 的 keytool 命令,生成证书(包含证书 / 公钥 / 私钥)到 D:\localhost.keystore
:
1 | keytool -genkey -keystore "D:\localhost.keystore" -alias localhost -keyalg RSA |
通过如上步骤,生成证书到 D:\ localhost.keystore
;
然后设置 tomcat 下的 server.xml
此处使用了 apache-tomcat-7.0.40 版本,打开 conf/server.xml,找到:
1 | \<!-- |
替换为
1 | <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" |
keystorePass 就是生成 keystore 时设置的密码。
添加 SSL 到配置文件(spring-shiro-web.xml)
此处使用了和十三章一样的代码:
1 | <bean id="sslFilter" class="org.apache.shiro.web.filter.authz.SslFilter"> |
SslFilter 默认端口是 443,此处使用了 8443;“/login.jsp = ssl,authc” 表示访问登录页面时需要走 SSL。
测试
最后把 shiro-example-chapter14 打成 war 包(mvn:package),放到 tomcat 下的 webapps 中,启动服务器测试,如访问 localhost:9080/chapter14/,会自动跳转到 https://localhost:8443/chapter14/login.jsp。
如果使用 Maven Jetty 插件,可以直接如下插件配置:
1 | <plugin> |