shiro 相关问题

Apache Shiro是一个Java安全框架,可执行身份验证,授权,加密和会话管理。

shiro 使用自定义过滤器报告错误“调用代码无法访问 SecurityManager”

最初,我的filterChainDefinitionMap是filterChainDefinitionMap.put("/login/**","anon");调用接口的时候响应正常,但是现在我有一个需求。全部“...

回答 1 投票 0

Pac4j 一段时间后重定向到白页

我正在使用 Keycloak、Pac4j 和 Shiro... 我不知道,但过了一会儿我得到一个白色页面并重定向到: http://localhost:8080/oauth/callback?client_name=KeycloakOidcClient&session_st...

回答 1 投票 0

Struts 2 与 Apache Shiro 集成时如何显示结果页面

使用: struts2 2.5.10, 春天 4.x, struts2-spring-插件2.5.10, 希罗1.4.0, Shiro-Spring 1.4.0。 网络.xml: 使用: struts2 2.5.10, 春季 4.x, struts2-spring-插件2.5.10, 四郎1.4.0, shiro-spring 1.4.0. web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- shiro filter mapping has to be first --> <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>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> beanx.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd "> <bean name="loginAction" class="example.shiro.action.LoginAction" > </bean> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login.jsp" /> <property name="filterChainDefinitions"> <value> /login.jsp = authc /logout = logout /* = authc </value> </property> </bean> <bean id="iniRealm" class="org.apache.shiro.realm.text.IniRealm"> <property name="resourcePath" value="classpath:shiro.ini" /> </bean> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="iniRealm" /> </bean> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> </beans> struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="default" extends="struts-default"> <action name="list" class="loginAction" method="list"> <result name="success">/success.jsp</result> <result name="error">error.jsp</result> </action> </package> </struts> index.jsp: <body> <s:action name="list" /> </body> login.jsp 看起来像: <form name="loginform" action="" method="post"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr> <td>Username:</td> <td><input type="text" name="username" maxlength="30"></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password" maxlength="30"></td> </tr> <tr> <td colspan="2" align="left"><input type="checkbox" name="rememberMe"><font size="2">Remember Me</font></td> </tr> <tr> <td colspan="2" align="right"><input type="submit" name="submit" value="Login"></td> </tr> </table> </form> LoginAction.list(): public String list() { Subject currentUser = SecurityUtils.getSubject(); if(currentUser.isAuthenticated()) {System.out.println("user : "+currentUser.getPrincipal()); System.out.println("You are authenticated!"); } else { System.out.println("Hey hacker, hands up!"); } return "success"; } shiro.ini: [users] root=123,admin guest=456,guest frank=789,roleA,roleB # role name=permission1,permission2,..,permissionN [roles] admin=* roleA=lightsaber:* roleB=winnebago:drive:eagle5 index.jsp、login.jsp、success.jsp放在webapp下 我想要的是:输入LoginAction.list()需要进行身份验证,如果登录成功,则运行LoginAction.list()并返回"success"然后显示定义为Struts操作结果的success.jsp。 现在登录成功后可以执行LoginAction.list(),但是success.jsp不显示,浏览器是空白页面。 为什么? 我找到了原因:我在index.jsp中使用了<s:action name="list" />,但是struts文档说如果我们想用<s:action>看到结果页面,那么我们必须将其属性executeResult设置为true,即就像<s:action name="list" executeResult="true"/>。 在我看来,这有点奇怪,这个属性默认应该是 true。 有一个示例,您应该如何使用 Shiro applicationContext.xml 进行配置: <property name="filterChainDefinitions"> <value> # some example chain definitions: /admin/** = authc, roles[admin] /** = authc # more URL-to-FilterChain definitions here </value> </property> 以 /admin/ 开头的 URL 通过角色 admin 进行保护,任何其他 URL 均不受保护。如果 Struts 操作和结果 JSP 不在受保护区域中,则会显示它们。

回答 2 投票 0

如何使用 Pac4j / Shiro 设置会话超时?

我有一个简单的问题: 如何设置会话超时?目前看来我的会话在最大之后就过期了。 60分钟,但我以为我已经定义了10个小时...... 在我的 shiro.ini 中我有这个:

回答 1 投票 0

Shiro 主题充满了 Pac4j?

我想知道 Shiro 的主题是如何用 Pac4j 填充的? 通常我可以使用: 主题 subject = SecurityUtils.getSubject(); 我将 Keycloak 与 Pac4j 一起使用。它正在工作,用户正在

回答 1 投票 0

认证成功后获取用户资料/信息

我会再尝试一次,也许我会从了解 Pac4j 的人那里得到答案。 我有一个简单的问题想问 Pac4j。 我使用 Keycloak 作为身份验证提供者。 成功登录后我想...

回答 1 投票 0

Grails + 保护应用程序

我正在开发一个遗留的 Grails 应用程序。 我有几个这样的表: 用户(ID、名称、企业 ID) 企业(ID、名称) 资产(id、描述、enterprise_id) 我想验证一下...

回答 3 投票 0

编写自定义Shiro领域

我正在构建自己的 AuthorizingRealm 子类,并且很难将其连接到我的 SecurityManager。 我的境界的本质: 公共类 MyRealm 扩展 AuthorizingRealm {

回答 3 投票 0

Keycloak、Apache Shiro 和 Pac4j 安装/配置

我正在尝试使用 Keycloak 为我的 JSF Web 应用程序实现身份验证。 我已经花了很多小时了,但它仍然不起作用。 当我从 Keycloak 登录到登录屏幕后,我在 Keyclo 中登录...

回答 1 投票 0

带有 Shiro 和 Keycloak 的 Pac4j - 我如何管理我的权限(授权)

我目前正在尝试使用 Keycloak 设置 Shiro。 我在互联网上搜索并找到了一些用于使用 Keycloak 设置 OIDC 配置的 shiro.ini 设置。 我之前在没有 Keycloak 认证的情况下设置过 Shiro...

回答 1 投票 0

Apache Shiro 无法使用 Java 11 找到 ehcache 默认配置

我有一个使用 Apache Shiro 的 Web 应用程序。我正在从 Java 8 升级到 11。这是唯一的更改,但是当我尝试启动我的服务器时,shiro 似乎找不到默认的 ehcache.xml

回答 1 投票 0

如何在shiro中使用jndi?

这是带jndi的springboot @豆 公共 ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { @覆盖...

回答 0 投票 0

在 Spring Boot 中与 Shiro 一起使用多个 FilterFactoryBean、SecurityManager 和 Realm

我有两个 Reams 设置,名称分别为“Reaml1”和“Realm2”。这两个领域用于不同类型的实体身份验证。 @配置 公共课 ShiroConfig { @B...

回答 0 投票 0

Apache Shiro 遇到 java.lang.NoClassDefFoundError: javax/servlet/Filter with SpringBoot 3.0

我目前正在使用带有 SpringBoot 3.0 和 Apache Shiro ver 1.10.0 的 Java 17。我试图使用 ShiroConfig 为 api 访问添加一些基本过滤器(/更新和/添加)。 我不断遇到

回答 1 投票 0

How to make JasperReports work with Jakarta EE 9 or any workaround to make JasperReports (6.20.0 version) work with Jakarta EE 9?

我正在升级我的 Maven 应用程序以从 5.x 使用 spring 6.x。 Spring 6.x 基于 Jakarta EE,所以我相应地更新了我的依赖项。但是对于 JasperReports,我在 web.xm 中定义了一个 servlet ...

回答 2 投票 0

IIOP1002:主体传播:无法在主题中找到主体信息 - Apache Shiro + EJB

我正在使用 Shiro Security 来保护 JSF 项目。 它按预期工作,包括调用远程 EJB(不安全)。但是,当调用不安全的 EJB 时,我有以下...

回答 2 投票 0

Shiro上传文件获取'file'文件失败

先贴上我的控制器代码 @PostMapping("/上传/单") 公共 ResponseResult uploadSingleFile(HttpServletRequest 请求,HttpServletResponse 响应){ JSON对象

回答 0 投票 0

Apache Shiro ThreadContext#bind(Subject) vs ThreadContext.bind(SecurityManager)

我刚刚学习Apache Shiro,面临一个问题。在我在互联网上看到的例子中,线程安全的切入点是以下代码: try { ThreadContext.bind(subject); /...

回答 1 投票 0

如何让Apache ZeppelinShiro在不同的端口(不是8080)上工作?

Apache Zeppelin 0.9.0 preview1包括基本的Shiro auth,只要在confzeppelin-site.xml中指定的zeppelin.server.port是8080,就可以正常工作。然而,我想使用另一个端口(例如9000)来进行 ...

回答 1 投票 0

Grails Shiro插件,未经授权的重定向缺少上下文路径。

刚开始使用Grails 4.0.2的Grails Shiro插件,遇到了一个小问题,我怀疑可能是我的配置错误。未经授权的重定向,也就是说,URL的 ...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.