`
jinnianshilongnian
  • 浏览: 21502998 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2418423
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:3008653
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5639341
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:259897
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1597266
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:250209
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5858812
Group-logo
跟我学Nginx+Lua开...
浏览量:701941
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:785138
社区版块
存档分类
最新评论

第十四章 SSL——《跟我学Shiro》

阅读更多

 

目录贴: 跟我学Shiro目录贴

 

对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问。

 

首先生成数字证书,生成证书到D:\localhost.keystore

使用JDKkeytool命令,生成证书(包含证书/公钥/私钥)到D:\localhost.keystore

keytool -genkey -keystore "D:\localhost.keystore" -alias localhost -keyalg RSA

输入密钥库口令:

再次输入新口令:

您的名字与姓氏是什么?

  [Unknown]:  localhost

您的组织单位名称是什么?

  [Unknown]:  sishuok.com

您的组织名称是什么?

  [Unknown]:  sishuok.com

您所在的城市或区域名称是什么?

  [Unknown]:  beijing

您所在的省//自治区名称是什么?

  [Unknown]:  beijing

该单位的双字母国家/地区代码是什么?

  [Unknown]:  cn

CN=localhost, OU=sishuok.com, O=sishuok.com, L=beijing, ST=beijing, C=cn是否正确

?

  []:  y

 

输入 <localhost> 的密钥口令

        (如果和密钥库口令相同按回车):

再次输入新口令:

 

通过如上步骤,生成证书到D:\ localhost.keystore

 

然后设置tomcat下的server.xml

此处使用了apache-tomcat-7.0.40版本,打开conf/server.xml,找到:

 

<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
       maxThreads="150" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS" />
--> 

替换为  

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
       maxThreads="150" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS" 
       keystoreFile="D:\localhost.keystore" keystorePass="123456"/> 

keystorePass就是生成keystore时设置的密码。

 

添加SSL到配置文件(spring-shiro-web.xml

此处使用了和十三章一样的代码:

<bean id="sslFilter" class="org.apache.shiro.web.filter.authz.SslFilter">
    <property name="port" value="8443"/>
</bean>
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    ……
    <property name="filters">
        <util:map>
            <entry key="authc" value-ref="formAuthenticationFilter"/>
            <entry key="ssl" value-ref="sslFilter"/>
        </util:map>
    </property>
    <property name="filterChainDefinitions">
        <value>
            /login.jsp = ssl,authc
            /logout = logout
            /authenticated.jsp = authc
            /** = user
        </value>
    </property>
</bean> 

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插件,可以直接如下插件配置: 

<plugin>
   <groupId>org.mortbay.jetty</groupId>
   <artifactId>jetty-maven-plugin</artifactId>
   <version>8.1.8.v20121106</version>
   <configuration>
     <webAppConfig>
       <contextPath>/${project.build.finalName}</contextPath>
     </webAppConfig>
     <connectors>
     <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
       <port>8080</port>
     </connector>
     <connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector">
       <port>8443</port>
       <keystore>${project.basedir}/localhost.keystore</keystore>
       <password>123456</password>
       <keyPassword>123456</keyPassword>
     </connector>
     </connectors>
   </configuration>
</plugin>

 

  

示例源代码:https://github.com/zhangkaitao/shiro-example;可加群 231889722 探讨Spring/Shiro技术。

  

请你欣赏春天美景 http://user.qzone.qq.com/314154083/photo/V10a4ot72FxYVR?ptlang=2052


 

  • 大小: 11.1 KB
10
4
分享到:
评论
14 楼 今晚吃肉 2018-01-05  
tao哥(不能打汉字 ),我参照你这样的配置后,直接打个war包放在tomcat上启动后连接无法访问,给出的信息如下
05-Jan-2018 16:22:54.638 INFO [http-apr-8443-exec-2] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
2018-01-05 16:22:54.785 [http-apr-8443-exec-4] WARN  org.springframework.web.servlet.PageNotFound:1205 - No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'springServlet'

我在tomcat中的配置为
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
       maxThreads="150" scheme="https" secure="true"  
       clientAuth="false" sslProtocol="TLS"   
       keystoreFile="D:\localhost.keystore" keystorePass="fengzxia"/>

在shiro的配置文件中的配置为
<!-- SSL配置 -->
    <bean id="sslFilter" class="org.apache.shiro.web.filter.authz.SslFilter">
        <!-- 要和tomcat中配置的一样 -->
        <property name="port" value="8443" />
    </bean>
,这是为什么呢
13 楼 johnmann 2016-08-11  
您的名字与姓氏是什么?
  [Unknown]:  localhost

生成证书的时候特别注意一定要“名字与姓氏”用localhost,要不然在15章节里面会会有错误。参考:http://java.globinch.com/enterprise-java/security/fix-java-security-certificate-exception-no-matching-localhost-found/
12 楼 zain_xu 2016-05-18  
很受用!!!
11 楼 cherishit 2014-08-06  
请问楼主 , 如果单向认证https
这样第一次访问需要添加可信站点 .   这个要怎么破 ?
这个是因为证书没有经过机构颁发吗?
10 楼 Long_yuan 2014-05-16  
tomcat 开启了ssl会受 Heartbleed影响么?
9 楼 Long_yuan 2014-05-16  
能把tomcat配置全文 贴出来么
8 楼 jinnianshilongnian 2014-03-27  
inotgaoshou 写道
jinnianshilongnian 写道
inotgaoshou 写道
tao哥结婚了,恭喜恭喜~

从哪里看到我结婚了   木有啊

tao哥,不好意思看错了,你好像是伴郎~
http://user.qzone.qq.com/314154083/photo/V10a4ot72FxYVR?ptlang=2052

哈哈
7 楼 inotgaoshou 2014-03-27  
jinnianshilongnian 写道
inotgaoshou 写道
tao哥结婚了,恭喜恭喜~

从哪里看到我结婚了   木有啊

tao哥,不好意思看错了,你好像是伴郎~
http://user.qzone.qq.com/314154083/photo/V10a4ot72FxYVR?ptlang=2052
6 楼 jinnianshilongnian 2014-03-26  
zqb666kkk 写道
我总感觉 涛 哥 写的很空泛

那应该如何写? 请指点。
5 楼 zqb666kkk 2014-03-26  
我总感觉 涛 哥 写的很空泛
4 楼 jinnianshilongnian 2014-03-26  
amberlike 写道
谢谢涛_哥的无私奉献,您的代码很让人感动,尤其是详细的注释

3 楼 amberlike 2014-03-25  
谢谢涛_哥的无私奉献,您的代码很让人感动,尤其是详细的注释
2 楼 jinnianshilongnian 2014-03-25  
inotgaoshou 写道
tao哥结婚了,恭喜恭喜~

从哪里看到我结婚了   木有啊
1 楼 inotgaoshou 2014-03-25  
tao哥结婚了,恭喜恭喜~

相关推荐

    第十七章 OAuth2集成——《跟我学Shiro》 - 开涛的博客 - ITeye技术网站2

    在《跟我学Shiro》的第十七章中,作者开涛介绍了如何集成OAuth2,使用Apache Oltu作为OAuth2服务端的实现。实现中涉及以下关键部分: 1. **依赖**:引入了`authzserver`(授权服务器依赖)和`resourceserver`(资源...

    跟我一起学shiro 张开涛

    《跟我一起学Shiro——张开涛》这本书是针对初学者的优秀教程,旨在帮助读者快速理解和掌握Shiro的基本用法和核心概念。 **1. Shiro基础** Shiro的基础概念包括Subject、Realms、Cryptography和Session。Subject是...

    [资料][Java]跟我学Shiro教程_Java跟我学Shiro教程_shiro_

    Apache Shiro 是一个强大且易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能,可以非常方便地开发出足够安全的应用。...阅读 "[资料][Java]跟我学Shiro教程.pdf",你将得到更详细的步骤指导和实践案例。

    跟我学Shiro

    通过《跟我学Shiro》.pdf,你将学习到如何创建 Realm 实现数据源连接、配置 Shiro 安全框架、处理登录和登出逻辑、实现权限控制以及在实际项目中部署和调优 Shiro。 10. **最佳实践** 学习 Shiro 的过程中,了解...

    跟我学Shiro教程.rar

    "跟我学Shiro教程"这个资源显然是为了帮助学习者深入理解并掌握Shiro的核心概念和实际应用。 在Shiro的认证服务中,其主要目标是确认用户身份。这通常涉及用户登录过程,其中用户提供的凭证(如用户名和密码)被...

    《跟我学Shiro》- 张开涛.txt

    ***txt文件中含有下载地址** 《跟我学Shiro》- 张开涛,PDF版本,带目录,清晰。 示例源代码:https://github.com/zhangkaitao/shiro-example; 加qun 231889722 探讨Spring/Shiro技术。

    跟我学Shiro教程及其课程分章节源码

    Apache Shiro是一个强大易用的Java安全框架,...我找了一版 跟我学Shiro教程PDF,里面讲的很详细.里面还附带了每个章节的源码.值得你收藏哟!饮水思源——原文出自:http://jinnianshilongnian.iteye.com/blog/2049092

    跟我学shiro

    #### 十四、SSL - **概念**:使用 SSL 加密通信,保护数据安全。 #### 十五、单点登录 - **概念**:用户只需一次登录就可以访问所有相关系统。 - **实现**: - **服务器端**:实现 SSO 的核心逻辑。 - **客户端**...

    跟我学Shiro-java开发+spring开发

    《跟我学Shiro-java开发+spring开发》是一个深入学习Java安全框架Shiro和Spring集成的教程,旨在帮助开发者掌握这两个关键技术在实际项目中的应用。Shiro是一个强大的且易用的Java安全框架,提供了认证、授权、加密...

    跟我学Shiro教程 pdf

    《跟我学Shiro》PDF完结版下载, Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不...

    shiro教程 跟我学Shiro教程

    "跟我学Shiro教程"资源包包含了全面学习Shiro所需的重要材料,包括文档和实践示例。 首先,我们来看《Apache_Shiro参考手册中文版.pdf》。这本书籍详细介绍了Shiro框架的各个组件和使用方法。通过阅读,你可以了解...

    跟我学Shiro第11章Demo

    在"跟我学Shiro第11章Demo"中,我们将深入探讨Shiro的核心组件,特别是其在缓存管理和会话管理中的应用。 首先,我们关注的是Cache缓存。Shiro支持缓存来提高性能,避免频繁的数据库查询。它允许开发者将敏感操作的...

    跟我学 Shiro - v1.1.rar

    Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Sp ring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所 ...

    跟我学shiro源代码

    "跟我学Shiro源代码"是一份针对Shiro框架的详细教程,通过这本书,读者能够深入理解Shiro的核心概念和用法,并通过实际的代码示例来提升自己的技能。 1. **身份验证(Authentication)**:Shiro提供了一套完善的...

    跟我学shiro文档及源码

    在《跟我学Shiro》这本书中,作者深入浅出地讲解了 Shiro 的核心概念与实际应用场景,配合源码分析,有助于读者更好地理解和掌握 Shiro 的工作原理。 1. **Shiro 概述** - Shiro 的设计目标是简化应用安全开发,它...

    跟我学Shiro第13章Demo(RememberMe)

    "跟我学Shiro第13章Demo(RememberMe)"是一个实战教程,旨在帮助开发者理解并实现Shiro中的RememberMe特性。RememberMe功能允许用户在一段时间内免于重新登录,提高了用户体验。 在这个Demo中,我们将探讨以下几个...

Global site tag (gtag.js) - Google Analytics