This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch fix/permission
in repository https://gitbox.apache.org/repos/asf/struts-examples.git

commit 572c5202bfa0563c63ce346c67f92cbdf54ebd84
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Thu Mar 6 11:02:13 2025 +0100

    Adjusts config to be compatible with Struts 7 stronger security
---
 .../org/apache/struts/edit/action/EditAction.java  |  90 +++++++-------
 .../java/org/apache/struts/edit/model/Person.java  | 134 ++++++++++-----------
 .../java/org/apache/struts/edit/model/State.java   |  58 ++++-----
 .../apache/struts/edit/service/EditService.java    |   4 +-
 .../struts/edit/service/EditServiceInMemory.java   |  67 +++++------
 control-tags/src/main/resources/struts.xml         |   1 +
 6 files changed, 166 insertions(+), 188 deletions(-)

diff --git 
a/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java 
b/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java
index 1e527b7..c3235a0 100755
--- a/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java
+++ b/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java
@@ -5,74 +5,66 @@ import org.apache.struts.edit.model.State;
 import org.apache.struts.edit.service.EditService;
 import org.apache.struts.edit.service.EditServiceInMemory;
 import org.apache.struts2.ActionSupport;
+import org.apache.struts2.interceptor.parameter.StrutsParameter;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
 /**
- * Acts as a controller to handle actions
- * related to editing a Person.
- * @author bruce phillips
- *
+ * Acts as a controller to handle actions related to editing a Person.
  */
 public class EditAction extends ActionSupport {
 
-       private static final long serialVersionUID = 1L;
+    private EditService editService = new EditServiceInMemory();
 
-       private EditService editService = new EditServiceInMemory();
+    private Person personBean;
+    private String[] sports = {"football", "baseball", "basketball"};
+    private String[] genders = {"male", "female", "not sure"};
+    private List<State> states;
+    private String[] carModelsAvailable = {"Ford", "Chrysler", "Toyota", 
"Nissan"};
 
-       private Person personBean;
-       private String [] sports = {"football", "baseball", "basketball" };
-       private String [] genders = {"male", "female", "not sure" };
-       private List<State> states ;
-       private String [] carModelsAvailable = 
{"Ford","Chrysler","Toyota","Nissan"};
+    public String save() throws Exception {
+        editService.savePerson(getPersonBean());
 
-       public String save() throws Exception {
-           editService.savePerson( getPersonBean() );
+        return SUCCESS;
+    }
 
-               return SUCCESS;
-       }
+    public String input() throws Exception {
+        setPersonBean(editService.getPerson());
 
-       public String input() throws Exception {
-               setPersonBean( editService.getPerson() );
+        return INPUT;
+    }
 
-               return INPUT;
-       }
+    @StrutsParameter(depth = 2)
+    public Person getPersonBean() {
+        return personBean;
+    }
 
-       public Person getPersonBean() {
-               return personBean;
-       }
+    public void setPersonBean(Person person) {
+        personBean = person;
+    }
 
-       public void setPersonBean(Person person) {
-               personBean = person;
-       }
+    public List<String> getSports() {
+        return Arrays.asList(sports);
+    }
 
-       public List<String> getSports() {
-               return Arrays.asList(sports);
-       }
+    public List<String> getGenders() {
+        return Arrays.asList(genders);
+    }
 
-       public List<String> getGenders() {
-               return Arrays.asList(genders);
-       }
+    public List<State> getStates() {
+        states = new ArrayList<>();
+        states.add(new State("AZ", "Arizona"));
+        states.add(new State("CA", "California"));
+        states.add(new State("FL", "Florida"));
+        states.add(new State("KS", "Kansas"));
+        states.add(new State("NY", "New York"));
 
+        return states;
+    }
 
-
-       public List<State> getStates() {
-
-               states = new ArrayList<>();
-               states.add( new State("AZ", "Arizona") );
-               states.add( new State("CA", "California") );
-               states.add( new State("FL", "Florida") );
-               states.add( new State("KS", "Kansas") );
-               states.add( new State("NY", "New York") );
-
-               return states;
-       }
-
-
-
-       public String [] getCarModelsAvailable() {
-               return carModelsAvailable;
-       }
+    public String[] getCarModelsAvailable() {
+        return carModelsAvailable;
+    }
 }
diff --git 
a/control-tags/src/main/java/org/apache/struts/edit/model/Person.java 
b/control-tags/src/main/java/org/apache/struts/edit/model/Person.java
index ec80aaf..3bc12e7 100755
--- a/control-tags/src/main/java/org/apache/struts/edit/model/Person.java
+++ b/control-tags/src/main/java/org/apache/struts/edit/model/Person.java
@@ -2,111 +2,101 @@ package org.apache.struts.edit.model;
 
 import java.util.Arrays;
 
-
-
 /**
  * Models a Person who registers.
- * @author bruce phillips
- *
  */
-public class Person
-{
+public class Person {
     private String firstName;
     private String lastName;
     private String sport;
     private String gender;
     private String residency;
     private boolean over21;
-    private String [] carModels;
+    private String[] carModels;
     private String email;
     private String phoneNumber;
 
-    public String getFirstName()
-    {
+    public String getFirstName() {
         return firstName;
     }
 
-    public void setFirstName(String firstName)
-    {
+    public void setFirstName(String firstName) {
         this.firstName = firstName;
     }
 
-    public String getLastName()
-    {
+    public String getLastName() {
         return lastName;
     }
 
-    public void setLastName(String lastName)
-    {
+    public void setLastName(String lastName) {
         this.lastName = lastName;
     }
 
-       public void setSport(String sport) {
-               this.sport = sport;
-       }
+    public void setSport(String sport) {
+        this.sport = sport;
+    }
 
-       public void setGender(String gender) {
-               this.gender = gender;
-       }
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
 
-       public String getGender() {
-               return gender;
-       }
+    public String getGender() {
+        return gender;
+    }
 
-       public String getSport() {
-               return sport;
-       }
+    public String getSport() {
+        return sport;
+    }
 
-       public void setResidency(String residency) {
-               this.residency = residency;
-       }
+    public void setResidency(String residency) {
+        this.residency = residency;
+    }
 
-       public String getResidency() {
-               return residency;
-       }
+    public String getResidency() {
+        return residency;
+    }
 
-       public void setOver21(boolean over21) {
-               this.over21 = over21;
-       }
+    public void setOver21(boolean over21) {
+        this.over21 = over21;
+    }
 
-       public boolean isOver21() {
-               return over21;
-       }
+    public boolean isOver21() {
+        return over21;
+    }
 
-       public void setCarModels(String [] carModels) {
-               this.carModels = carModels;
-       }
+    public void setCarModels(String[] carModels) {
+        this.carModels = carModels;
+    }
 
-       public String [] getCarModels() {
-               return carModels;
-       }
+    public String[] getCarModels() {
+        return carModels;
+    }
 
-       public String toString()
-    {
+    public String toString() {
         return "First Name: " + getFirstName() + " | " +
-        " Last Name:  " + getLastName() + " | " +
-        " Favorite Sport: " + getSport() + " | " +
-        " Gender: " + getGender() + " | " +  
-        " Residency: " + getResidency() + " | " +
-        " Over 21: " + isOver21()  + " | " +
-        " Car models: " + Arrays.asList( getCarModels() ) + " | " +
-        " Email: " + getEmail() + " | " +
-        " Phone: " + getPhoneNumber();
-    }
-
-       public void setEmail(String email) {
-               this.email = email;
-       }
-
-       public String getEmail() {
-               return email;
-       }
-
-       public void setPhoneNumber(String phoneNumber) {
-               this.phoneNumber = phoneNumber;
-       }
-
-       public String getPhoneNumber() {
-               return phoneNumber;
-       }
+                " Last Name:  " + getLastName() + " | " +
+                " Favorite Sport: " + getSport() + " | " +
+                " Gender: " + getGender() + " | " +
+                " Residency: " + getResidency() + " | " +
+                " Over 21: " + isOver21() + " | " +
+                " Car models: " + Arrays.asList(getCarModels()) + " | " +
+                " Email: " + getEmail() + " | " +
+                " Phone: " + getPhoneNumber();
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setPhoneNumber(String phoneNumber) {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getPhoneNumber() {
+        return phoneNumber;
+    }
 }
diff --git a/control-tags/src/main/java/org/apache/struts/edit/model/State.java 
b/control-tags/src/main/java/org/apache/struts/edit/model/State.java
index 97109dc..cbd4489 100755
--- a/control-tags/src/main/java/org/apache/struts/edit/model/State.java
+++ b/control-tags/src/main/java/org/apache/struts/edit/model/State.java
@@ -1,33 +1,33 @@
 package org.apache.struts.edit.model;
 
 public class State {
-       
-       private String stateAbbr;
-       
-       private String stateName;
-       
-       public State (String stateAbbr, String stateName) {
-               this.stateAbbr = stateAbbr;
-               this.stateName = stateName;
-       }
-
-       public void setStateAbbr(String stateAbbr) {
-               this.stateAbbr = stateAbbr;
-       }
-
-       public String getStateAbbr() {
-               return stateAbbr;
-       }
-
-       public void setStateName(String stateName) {
-               this.stateName = stateName;
-       }
-
-       public String getStateName() {
-               return stateName;
-       }
-       
-       public String toString() {
-               return getStateAbbr() ;
-       }
+
+    private String stateAbbr;
+
+    private String stateName;
+
+    public State(String stateAbbr, String stateName) {
+        this.stateAbbr = stateAbbr;
+        this.stateName = stateName;
+    }
+
+    public void setStateAbbr(String stateAbbr) {
+        this.stateAbbr = stateAbbr;
+    }
+
+    public String getStateAbbr() {
+        return stateAbbr;
+    }
+
+    public void setStateName(String stateName) {
+        this.stateName = stateName;
+    }
+
+    public String getStateName() {
+        return stateName;
+    }
+
+    public String toString() {
+        return getStateAbbr();
+    }
 }
diff --git 
a/control-tags/src/main/java/org/apache/struts/edit/service/EditService.java 
b/control-tags/src/main/java/org/apache/struts/edit/service/EditService.java
index 5b36bf5..b32fb91 100755
--- a/control-tags/src/main/java/org/apache/struts/edit/service/EditService.java
+++ b/control-tags/src/main/java/org/apache/struts/edit/service/EditService.java
@@ -4,8 +4,8 @@ import org.apache.struts.edit.model.Person;
 
 public interface EditService {
 
-       Person getPerson() ;
+    Person getPerson();
 
-       void savePerson(Person personBean);
+    void savePerson(Person personBean);
 
 }
diff --git 
a/control-tags/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java
 
b/control-tags/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java
index bf2d188..1037f1c 100755
--- 
a/control-tags/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java
+++ 
b/control-tags/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java
@@ -1,49 +1,44 @@
 package org.apache.struts.edit.service;
 
-
-
 import org.apache.struts.edit.model.Person;
 
 /**
  * Implement Services needed to edit and save
  * a Person object's state.  In this implementation
  * the Person object's state is stored in memory
- * @author brucephillips
- *
  */
-
 public class EditServiceInMemory implements EditService {
 
-       private static Person person ;
-       private static String [] carModels = {"Ford","Nissan"};
-
-       static {
-               person = new Person();
-               person.setFirstName("Bruce");
-               person.setLastName("Phillips");
-               person.setEmail("bphill...@ku.edu");
-               person.setSport("basketball");
-               person.setGender("not sure");
-               person.setResidency("KS");
-               person.setOver21(true);         
-               person.setCarModels( carModels);        
-               person.setPhoneNumber("123-456-9999");
-       }
-
-       public Person getPerson() {
-               return EditServiceInMemory.person;
-       }
-
-       public void savePerson(Person personBean) {
-               
EditServiceInMemory.person.setFirstName(personBean.getFirstName() );
-               EditServiceInMemory.person.setLastName(personBean.getLastName() 
);
-               EditServiceInMemory.person.setSport(personBean.getSport() );
-               EditServiceInMemory.person.setGender( personBean.getGender() );
-               EditServiceInMemory.person.setResidency( 
personBean.getResidency() );
-               EditServiceInMemory.person.setOver21( personBean.isOver21() );
-               
EditServiceInMemory.person.setCarModels(personBean.getCarModels() );
-               EditServiceInMemory.person.setEmail( personBean.getEmail() );
-               EditServiceInMemory.person.setPhoneNumber( 
personBean.getPhoneNumber() );
-       }
+    private static Person person;
+    private static String[] carModels = {"Ford", "Nissan"};
+
+    static {
+        person = new Person();
+        person.setFirstName("Bruce");
+        person.setLastName("Phillips");
+        person.setEmail("bphill...@ku.edu");
+        person.setSport("basketball");
+        person.setGender("not sure");
+        person.setResidency("KS");
+        person.setOver21(true);
+        person.setCarModels(carModels);
+        person.setPhoneNumber("123-456-9999");
+    }
+
+    public Person getPerson() {
+        return EditServiceInMemory.person;
+    }
+
+    public void savePerson(Person personBean) {
+        EditServiceInMemory.person.setFirstName(personBean.getFirstName());
+        EditServiceInMemory.person.setLastName(personBean.getLastName());
+        EditServiceInMemory.person.setSport(personBean.getSport());
+        EditServiceInMemory.person.setGender(personBean.getGender());
+        EditServiceInMemory.person.setResidency(personBean.getResidency());
+        EditServiceInMemory.person.setOver21(personBean.isOver21());
+        EditServiceInMemory.person.setCarModels(personBean.getCarModels());
+        EditServiceInMemory.person.setEmail(personBean.getEmail());
+        EditServiceInMemory.person.setPhoneNumber(personBean.getPhoneNumber());
+    }
 
 }
diff --git a/control-tags/src/main/resources/struts.xml 
b/control-tags/src/main/resources/struts.xml
index 750b70f..3473cb6 100755
--- a/control-tags/src/main/resources/struts.xml
+++ b/control-tags/src/main/resources/struts.xml
@@ -6,6 +6,7 @@
 
     <constant name="struts.devMode" value="true"/>
     <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
+    <constant name="struts.allowlist.packageNames" 
value="org.apache.struts.edit.model"/>
 
     <package name="basicstruts2" extends="struts-default">
         <default-action-ref name="index"/>

Reply via email to