我搜索了很多页面并关注,看来我不是幸运的人,我无法运行我的登录页面(我是新手)。当我点击登录按钮时,没有任何反应。这是我的网络应用程序结构
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
最佳答案
当您使用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>
关于java - 无法使用 Shiro 运行登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674937/