无法使用Shiro运行登录表单

时间:2014-03-26 23:08:41

标签: java security jsf shiro

我搜索了很多页并跟随,似乎我不是一个幸运的家伙,我无法运行我的登录页面(我是一个新手)。当我点击登录按钮时,什么也没发生。这是我的网络应用程序结构

login.xhtml(JSF表单)

<h:form prependId="false">
        <h:panelGroup>
            <h:panelGrid id="panel" columns="2" border="1" cellpadding="0" cellspacing="2">
                <h:outputLabel for="username" value="Email" />
                <h:inputText id="username"  />

                <h:outputLabel for="password" value="Password" />
                <h:inputText id="password" />

            </h:panelGrid>
            <h:commandButton value="Login" style="margin-top: 10px;"/>
        </h:panelGroup>
    </h:form>

的web.xml

<filter>
    <filter-name>Pretty Filter</filter-name>
    <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Pretty Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<!-- Setup Apache Shiro for Authentication & Authorization -->
<listener>
    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>

shiro.ini

[main]
authc = com.beacon.security.MetroFormAuthenticationFilter
authc.loginUrl = /login.xhtml
authc.successUrl  = /home

[urls]
/login.xhtml = authc
/errors/notAuthorized.xhtml = authc
/** = anon

1 个答案:

答案 0 :(得分:1)

当您使用shiro时,ShiroFilter应该是过滤器链中的第一个过滤器

尝试将您的web.xml更改为

    <filter>
    <filter-name>Pretty Filter</filter-name>
    <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<filter-mapping>
    <filter-name>Pretty Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<!-- Setup Apache Shiro for Authentication & Authorization -->
<listener>
    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
相关问题