https比http要更安全,https相当于加上了ssl。
tomcat负责认证。
shiro过滤器负责把不是https 443请求的变成https请求。
1.开通ssl
这个网上应该有免费的,或者花钱的有教程,最后会生成证书。这里截取开涛中的方法
2.配置tomcat
意思就是访问8080的时候跳转到8443.如果配置成功,访问tomcat的8080应该会直接跳到https 8443
相关的ssl应该有配置tomcat的说明
3.shiro拦截器
org.apache.shiro.web.filter.authz.SslFilter
添加SslFilter 到ShiroFilterFactoryBean中,设置它拦截一些请求
访问接口,出现不安全提示的原因是,我的ssl证书绑定的不是这个项目ip,是一个域名,继续访问。
访问成功
4.debug过滤器
SslFilter 的作用就是当访问我们配置的url时,判断是不是https,不是就重定向成https请求
用http普通请求访问,一个被ssl拦截的url
requiredPort是443接口,requestPort是80,两者不相等,不允许访问
isAccessAllowed方法返回false后,执行AccessControlFilter的onPreHandle方法
执行onAccessDenied ,请求不被运行执行此方法,内容就是重定向到https://原来的请求