如何配置Shiro内置登陆处理
1、使用内置登陆处理不管现在使用的是SpringMVC或者是普通的Servlet可以返现针对于shiro的处理都是按照固定的套路进行的。这样的话对于整个程序而言是非常重复的,于是shiro决定了,将登陆处理自己也包揽了。将通过配置实现shiro的登陆操作。1、修改applicatioinContext.xml文件,增加内置登陆处理:<!-- 此处表示内置的表单登陆控制过滤器 --> <bean id="FormAuthenticationFilter" class="org.apache.shiro.web.filter.authc.FormAuthenticationFilter"> <!-- 定义出需要使用的参数,此参数与表单一一对应 --> <property name="usernameParam" value="mid"></property> <property name="passwordParam" value="password"></property> <property name="loginUrl" value="/loginUrl"></property> </bean>

2、修改登陆页面的表单提交地址和表单验证过滤器的提交地址一样:<form action="loginUrl" method="post"> 用户名:<input type="text" name="mid" /> 密码:<input type="password" name="password"/> <input type="submit" value="登录"/> </form>

3、现在shiro是不知道这个过滤器的存在的,所以还需要修改shiro过滤器: <!-- 配置shiro过滤器 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"></property> <!-- 出现错误之后的跳转路径的配置 --> <property name="loginUrl" value="/loginUrl"></property> <!-- 认证失败之后的跳转路径页面 --> <property name="unauthorizedUrl" value="/unauthUrl"></property> <property name="successUrl" value="/successUrl"></property> <!-- 配置shiro里面需要使用到的过滤器操作 --> <property name="filters"> <map> <entry key="authc" value-ref="formAuthenticationFilter"></entry> </map> </property> <!-- shiro里面需要针对于所有的路径进行配置 --> <property name="filterChainDefinitions"> <value> /loginUrl=authc /*=anon /messages/**=authc /admin*=authc /welcome.jsp=authc,perms[member:add] </value> </property> </bean>

4、现在在浏览器中输入需要验证的路径地址:http://localhost:8080/shirodemo/messages/lljlj,这样就会跳转到登陆页面:

5、如果需要使用内置的登陆处理,则必须要求将你的登陆页面设置为authc的过滤,需要将你的程序代码中的loginUrl的设计设置为表单的提交路径,否则无法使用。

6、查看后台打印日志已经调用realm的自定义java类:
