• SSL相关


    ssl配置

     
    首先要配置tomcat使其支持SSl,具体配置方式如下(我的是tomcat8):
    
    • 生成证书:

    cmd窗口运行:
    keytool -genkey -alias tomcat -keyalg RSA -keystore D:keystore.keystore 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: xxx 您的组织单位名称是什么? [Unknown]: xxx 您的组织名称是什么? [Unknown]: xxx 您所在的城市或区域名称是什么? [Unknown]: xxx 您所在的省/市/自治区名称是什么? [Unknown]: xxx 该单位的双字母国家/地区代码是什么? [Unknown]: CN CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=CN是否正确? [否]: y 输入 <tomcat> 的密钥口令 (如果和密钥库口令相同, 按回车): C:Usersgaogang>
    • 将生成的keystore.keystore复制到tomcat根目录的bin目录下
    • 配置tomcat,修改server.xml:
    将这段配置注释去掉:
        <!--
        <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" />
        -->
    改成如下形式:
    <Connector SSLEnabled="true" clientAuth="false" keystoreFile="D:Program Filesapache-tomcat-8.0.36inkeystore.keystore" keystorePass="xxx" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/>
    
    项目使用SSl,即https,目前支持通过两种方式进行配置,一种是通过shiro,添加过滤器实现,一种是通过Java Web的安全验证机制实现,注意两种方式二选一。
    
    • 第一种: 配置shiro过虑器: 在spring-shiro.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">
            <!-- shiro的核心安全接口 -->
            <property name="securityManager" ref="securityManager" />
            <!-- 要求登录时的链接 -->
            <property name="loginUrl" value="/login.html" />
            <!-- 登陆成功后要跳转的连接 -->
            <property name="successUrl" value="/index.html" />
            <!-- 未授权时要跳转的连接 -->
            <property name="unauthorizedUrl" value="/denied.jsp" />
    
            <!-- Shiro连接约束配置,即过滤链的定义 -->
            <!-- 此处可配合我的这篇文章来理解各个过滤连的作用http://blog.csdn.net/jadyer/article/details/12172839 -->
            <!-- 下面value值的第一个'/'代表的路径是相对于HttpServletRequest.getContextPath()的值来的 -->
            <!-- anon:它对应的过滤器里面是空的,什么都没做,这里.do和.jsp后面的*表示参数,比方说login.jsp?main这种 -->
            <!-- authc:该过滤器下的页面必须验证后才能访问,它是Shiro内置的一个拦截器org.apache.shiro.web.filter.authc.FormAuthenticationFilter -->
            <!-- 动态加载权限 -->
            <property name="filterChainDefinitions" value="#{chainDefinitionService.initFilterChainDefinitions()}" />
            <!-- 这里暂时静态加载方式 -->
            <!-- <property name="filterChainDefinitions"> <value> /login.html = authc 
                /logout.html = logout /register.html = anon /captcha.html = anon /denied.jsp 
                = anon /resources/** = anon /view/error/** = anon /*/withoutAuth/** = anon 
                /** = authc </value> </property> -->
            <!-- 自定义过滤器 -->
            <property name="filters">
                <map>
                    <entry key="kickout" value-ref="kickoutFilter" />
                    <entry key="kickoutAuth" value-ref="kickoutAuthFilter"/>
                    <entry key="login" value-ref="loginFilter" />
                    <entry key="remember" value-ref="rememberMeFilter"/>
                    <entry key="perm" value-ref="permissionFilter"/>
                    <entry key="roles" value-ref="roleFilter"/>
                    <entry key="baseUrl" value-ref="baseUrl"/>
                     <entry key="ssl" value-ref="sslFilter"></entry>
                </map>
            </property>
        </bean>
    

    在shiroAuth.props文件中做如下配置:

    #需要登录,并使用ssl
    /**=ssl,login,remember,perm,baseUrl
    
    • 第二种: web.xml中配置如下节点:
        <security-constraint>
            <web-resource-collection>
                <web-resource-name>webside</web-resource-name>
                <url-pattern>/*</url-pattern>
            </web-resource-collection>
            <user-data-constraint>
                <transport-guarantee>CONFIDENTIAL</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
    
  • 相关阅读:
    Android:Service的非绑定式的创建和生命周期
    [NHibernate]缓存(NHibernate.Caches)
    [NHibernate]Parent/Child
    [NHibernate]关联映射
    [NHibernate]集合类(Collections)映射
    [NHibernate]O/R Mapping基础
    [NHibernate]持久化类(Persistent Classes)
    [js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了
    [NHibernate]ISessionFactory配置
    [Nhibernate]体系结构
  • 原文地址:https://www.cnblogs.com/smailpeanut/p/7242997.html
Copyright © 2020-2023  润新知