This is an automated email from the ASF dual-hosted git repository.
lprimak pushed a commit to branch 3.x
in repository https://gitbox.apache.org/repos/asf/shiro.git
The following commit(s) were added to refs/heads/3.x by this push:
new e6e500c4a enh: added spring-mvc module
e6e500c4a is described below
commit e6e500c4aa3fdf6c700d4d114a8d18c92dd1e160
Author: lprimak <[email protected]>
AuthorDate: Wed Feb 4 13:39:07 2026 -0600
enh: added spring-mvc module
---
pom.xml | 8 +----
samples/pom.xml | 6 ++--
samples/spring-mvc/pom.xml | 39 +++++++++++++++-------
.../samples/spring/config/ApplicationConfig.java | 3 +-
.../samples/spring/realm/SaltAwareJdbcRealm.java | 4 +++
.../shiro/samples/spring/web/JnlpController.java | 4 +--
.../shiro/samples/spring/web/LoginController.java | 4 +--
.../shiro/samples/spring/web/LogoutController.java | 4 +--
8 files changed, 42 insertions(+), 30 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2d3eebc35..d2b147be6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -433,13 +433,6 @@
<port>9080</port>
<idleTimeout>60000</idleTimeout>
</httpConnector>
- <requestLog
implementation="org.eclipse.jetty.server.NCSARequestLog">
-
<filename>./target/yyyy_mm_dd.request.log</filename>
- <retainDays>90</retainDays>
- <append>true</append>
- <extended>false</extended>
- <logTimeZone>GMT</logTimeZone>
- </requestLog>
</configuration>
</plugin>
<plugin>
@@ -558,6 +551,7 @@
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<showWarnings>true</showWarnings>
+ <parameters>true</parameters>
<compilerArgs>
<arg>-Xlint:deprecation</arg>
<arg>-Xlint:unchecked</arg>
diff --git a/samples/pom.xml b/samples/pom.xml
index 72c64f0ee..a40e5ddca 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -46,17 +46,17 @@
<module>servlet-plugin</module>
<module>guice</module>
<module>spring</module>
+ <module>spring-mvc</module>
</modules>
<profiles>
<profile>
<id>deferred-for-3x</id>
<modules>
- <module>spring-boot</module>
- <module>spring-boot-3-web</module>
- <module>spring-mvc</module>
<module>spring-hibernate</module>
+ <module>spring-boot</module>
<module>spring-boot-web</module>
+ <module>spring-boot-3-web</module>
</modules>
</profile>
</profiles>
diff --git a/samples/spring-mvc/pom.xml b/samples/spring-mvc/pom.xml
index 1882e07b9..f597ffd7e 100644
--- a/samples/spring-mvc/pom.xml
+++ b/samples/spring-mvc/pom.xml
@@ -40,8 +40,8 @@
<plugins>
<plugin>
<!-- Note that you need to run mvn jetty:run-war to test the
webstart application -->
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
+ <groupId>org.eclipse.jetty.ee11</groupId>
+ <artifactId>jetty-ee11-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<httpConnector>
@@ -56,6 +56,12 @@
</build>
<dependencies>
+ <dependency>
+ <groupId>jakarta.platform</groupId>
+ <artifactId>jakarta.jakartaee-web-api</artifactId>
+ <version>11.0.0</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
@@ -67,12 +73,13 @@
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
- <version>3.0.0</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>4.0.5</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
@@ -99,6 +106,11 @@
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
@@ -126,20 +138,23 @@
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
+
+ <!-- JSTL (Jakarta) -->
<dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>${hsqldb.version}</version>
- <scope>runtime</scope>
+ <groupId>jakarta.servlet.jsp.jstl</groupId>
+ <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
+ <version>3.0.2</version>
</dependency>
<dependency>
- <groupId>org.apache.taglibs</groupId>
- <artifactId>taglibs-standard-spec</artifactId>
- <scope>runtime</scope>
+ <groupId>org.glassfish.web</groupId>
+ <artifactId>jakarta.servlet.jsp.jstl</artifactId>
+ <version>3.0.1</version>
</dependency>
+
<dependency>
- <groupId>org.apache.taglibs</groupId>
- <artifactId>taglibs-standard-impl</artifactId>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>${hsqldb.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/config/ApplicationConfig.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/config/ApplicationConfig.java
index d5a16d69e..11ea03d5e 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/config/ApplicationConfig.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/config/ApplicationConfig.java
@@ -27,7 +27,6 @@ import
org.apache.shiro.spring.config.ShiroAnnotationProcessorConfiguration;
import org.apache.shiro.spring.config.ShiroBeanConfiguration;
import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition;
import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;
-import org.apache.shiro.spring.web.config.ShiroRequestMappingConfig;
import org.apache.shiro.spring.web.config.ShiroWebConfiguration;
import org.apache.shiro.spring.web.config.ShiroWebFilterConfiguration;
@@ -152,9 +151,9 @@ public class ApplicationConfig {
chainDefinition.addPathDefinition("/logo.png", "anon");
chainDefinition.addPathDefinition("/shiro.css", "anon");
chainDefinition.addPathDefinition("/s/login", "anon");
+ chainDefinition.addPathDefinition("/WEB-INF/resources/login.jsp",
"anon");
//allow WebStart to pull the jars for the swing app
chainDefinition.addPathDefinition("/*.jar", "anon");
- chainDefinition.addPathDefinition("/**", "authc");
return chainDefinition;
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/realm/SaltAwareJdbcRealm.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/realm/SaltAwareJdbcRealm.java
index cd911874a..1f4ca0ad5 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/realm/SaltAwareJdbcRealm.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/realm/SaltAwareJdbcRealm.java
@@ -44,6 +44,10 @@ public class SaltAwareJdbcRealm extends JdbcRealm {
private static final Logger LOGGER =
LoggerFactory.getLogger(SaltAwareJdbcRealm.class);
+ public SaltAwareJdbcRealm() {
+ setPermissionsLookupEnabled(true);
+ }
+
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken
token) throws AuthenticationException {
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
index 4b0b73371..06660da8c 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
@@ -21,7 +21,7 @@ package org.apache.shiro.samples.spring.web;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@@ -38,7 +38,7 @@ import java.util.Map;
*
* @since 0.1
*/
-@Component
+@Controller
@RequestMapping("/s/shiro.jnlp")
public class JnlpController extends AbstractController {
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LoginController.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LoginController.java
index 1747ec2c9..d8a86208d 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LoginController.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LoginController.java
@@ -23,7 +23,7 @@ import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -35,7 +35,7 @@ import org.springframework.web.bind.annotation.RequestParam;
*
* @since 0.1
*/
-@Component
+@Controller
@RequestMapping("/s/login")
public class LoginController {
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
index a8dfa1a49..54b9849fe 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
@@ -19,7 +19,7 @@
package org.apache.shiro.samples.spring.web;
import org.apache.shiro.SecurityUtils;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@@ -34,7 +34,7 @@ import jakarta.servlet.http.HttpServletResponse;
*
* @since 0.1
*/
-@Component
+@Controller
@RequestMapping("/s/logout")
public class LogoutController extends AbstractController {