This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/struts-examples.git
The following commit(s) were added to refs/heads/main by this push:
new 57c91cd Adjusts config to be compatible with Struts 7 stronger
security (#426)
57c91cd is described below
commit 57c91cd157083296df7f4fb05a3d0e32f2885273
Author: Lukasz Lenart <[email protected]>
AuthorDate: Thu Mar 6 11:04:34 2025 +0100
Adjusts config to be compatible with Struts 7 stronger security (#426)
---
.../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("[email protected]");
- 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("[email protected]");
+ 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"/>