jsp - Shiro 还在寻找 login.jsp,当所有的应用页面都重命名为 .html

标签 jsp tomcat shiro

我正在修改我的应用程序以将所有 .jsp 页面重命名为 .html。

修改后的shiro.ini如下:

[main]
shiro.loginUrl = /login.html

dataSource = org.apache.shiro.jndi.JndiObjectFactory
dataSource.resourceName = java:/comp/env/jdbc/myappDB

credentialsMatcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher

jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.dataSource = $dataSource
jdbcRealm.credentialsMatcher = $credentialsMatcher

[filters]

[urls]
/login.html = authc
/logout = logout
/secure/** = authc

/api/** = authcBasic, rest

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <listener>
        <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
    </listener>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

    <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>

    <welcome-file-list>
        <welcome-file>appmain.html</welcome-file>
    </welcome-file-list>

</web-app>

几点:

  • 在我开始将 web.xml 和应用程序页面修改为 .html 扩展名而不是 .jsp 扩展名之前,应用程序运行良好。
  • 当我将鼠标悬停在主页上的登录链接上时,会显示“http://localhost:8080/myapp/login.html”。但是当我点击它时,出现 404 页面未找到错误。
  • 我已经尝试过 Firefox 和 IE11,两者都遇到了同样的问题。多次清除缓存。

有什么地方可能出错吗?

最佳答案

我原来的shiro.ini有问题。 [main] 下面的第一行以 shiro.loginURL 开头,而实际上它应该是 shiro.loginUrl。我进行了此更改,我的应用程序现在运行良好。我也在编辑问题以显示正确的语法。我已接受我自己的答案来完成/关闭此问题。

关于jsp - Shiro 还在寻找 login.jsp,当所有的应用页面都重命名为 .html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32800149/

相关文章:

java - 在没有表单的情况下将数据从 servlet 传递到 jsp?

mysql - Tomcat/Hibernate 与 MySql 的连接失败,出现 "Communications link failure"和 "Permission denied"

java - eclipse 上的Tomcat错误

java - 为什么 Shiro 的 AnonymousFilter 不在这个例子中创建新的网络 session ?

node.js - 使用来自 node.js 的凭据进行反向代理登录

java - 使用 Shiro 的 Servlet 身份验证,是否可以过滤具有某些关键字的 URL?

javascript - 需要在jsp的 anchor 标记中显示javascript值

Javascript 函数立即触发自身

postgresql - 关系(表名)公司的权限被拒绝

tomcat - Jersey :不存在 WebApplication 提供程序