gpt4 book ai didi

java - Apache Shiro 配置问题的 Web 应用程序安全性

转载 作者:行者123 更新时间:2023-12-02 12:34:22 25 4
gpt4 key购买 nike

我决定使用 Shiro 来保护我的 Web 应用程序。我使用 tomcat 应用服务器、maven、hibernate 和 jsf。现在我尝试配置 Shiro 但遇到了一些问题。

这是我的文件:

---POM.xml---

            <dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.0.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.0.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-aspectj</artifactId>
<version>1.0.0-incubating</version>
</dependency>

---web.xml---

 <servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>
javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>welcome.xhtml</welcome-file>
</welcome-file-list>

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>

[main]

myrealm = com.misPartidos.web.MyRealm

</param-value>

</init-param>
</filter>

<filter-mapping>
<filter-name>SecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

如果我部署到服务器,我会收到此错误消息:

ERROR: Exception starting filter ShiroFilter
java.lang.ClassNotFoundException: org.apache.shiro.web.servlet.IniShiroFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
30.07.2010 10:14:34 org.apache.catalina.core.StandardContext start
ERROR: Error filterStart

我的错误在哪里?我还需要实现其他措施吗?谢谢你的帮助斯文

<小时/>

附加

我思考了一下这个问题。我觉得关键是境界的设定。但为了测试这个框架,我不想添加数据库或 ldap。我需要一个简单的解决方案...

<小时/>

更新

我更改了 web.xml,如下所示:

<init-param>
<param-name>config</param-name>
<param-value>

[main]

[users]

tom = secret, admin
paul = secret, user

[roles]

admin = *
user = *

</param-value>

</init-param>

但错误仍然相同:-/

最佳答案

该问题与 INI 配置或您的 Realm 定义无关。这是因为 org.apache.shiro.web.servlet.IniShiroFilter 类不在类路径中。该类位于 shiro-web-1.0.0-incubating.jar 文件中(不需要快照)。确保您的 POM 依赖项正确列出了它。

此外,在项目的 Web 模块中,运行“mvn install”。然后查看“target”目录,您应该会看到构建的 .war 文件。在命令行上运行“jar tf my-war-file.war”。只要您在/WEB-INF/lib 中看到 shiro-web-1.0.0-incubating.jar 文件,就可以了。

干杯,

莱斯

(Apache Shiro 团队)

关于java - Apache Shiro 配置问题的 Web 应用程序安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com