3,受保护的 URL 如何进行配置 ①[urls]部分的配置,其格式为:url=拦截器[参数],拦截器[参数]。 ②如果当前请求的 url 匹配[urls]部分的某个 url 模式,将会执行器配置的拦截器。 ③anon(anonymous)拦截器表示可以匿名访问。 ④authc(authencation)拦截器标识需要身份认证通过后才能访问。 ⑤logout(logout)拦截器表示登出/退出登录,它会清空shiro缓存信息。 ⑥url 模式使用 Ant 风格模式: [1]?匹配一个字符; [2]*匹配零个或多个字符; [3]**匹配路径中的零个或多个路径; 4,认证/授权基本步骤 ①获取当前的 Subject,调用 SecurityUtils.getSubject(); ②判断当前用户是否已经认证,调用 Subject 的 isAuthenticated(); ③或没有被认证,则把用户名和密码封装为 UserNamePassworkToken 对象 [1]客户端提交的表单数据。 [2]提交数据到 SpringMVC 的 handler 上。 [3]获取用户名和密码。 ④执行登录,调用 Subject 的 login(AuthencationToken); ⑤自定义 Realm 方法,从数据库中获用户安全数据,返回给 Shiro [1]实际上需要继承 org.apache.shiro.realm.AuthencatingRealm 类(仅仅实现认证,org.apache.shiro.realm.AuthorizingRealm 可以用来认证和授权)。 [2]实现 doGetAuthenticationInfo(AuthenticationToken) 方法。 ⑥最后由 Shiro 完成密码的比对。