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 {
 

Reply via email to