Utilise actuellement ce code pour récupérer la valeur du paramètre "csrfPreventionSalt"
de Interceptor dans Struts2.Récupère un paramètre spécifique envoyé depuis la vue dans l'intercepteur
Quelqu'un peut-il s'il vous plaît dire une façon directe pour aller chercher sa valeur ...
public String intercept(ActionInvocation invocation) throws Exception {
final ActionContext context=invocation.getInvocationContext();
HttpServletRequest httpReq = ServletActionContext.getRequest();
String salt ="";
Map<String, Object> params = (Map<String, Object>)ActionContext.getContext().getParameters();
Iterator<Entry<String, Object>> it = (Iterator<Entry<String, Object>>)params.entrySet().iterator();
while(it.hasNext()) {
Entry<String, Object> entry = it.next();
if(entry.getKey().equals("csrfPreventionSalt"))
{
Object obj = entry.getValue();
if (obj instanceof String[]){
String[] strArray = (String[]) obj;
if (strArray!=null) {
salt = strArray[0];
}
}
}
}
Il s'agit d'une carte et vous connaissez une clé. Pourquoi vous itérez-vous? Jetez un coup d'oeil comment cela est fait dans certains des intercepteurs de noyau S2 par exemple. ['MultiselectInterceptor'] (https://github.com/apache/struts/blob/master/core/src/main/java/org/apache/struts2/interceptor/MultiselectInterceptor.java). –