You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2005/01/09 01:02:38 UTC
svn commit: r124690 - in struts/sandbox/trunk/struts-shale/src/java/org/apache/shale: component renderer util
Author: craigmcc
Date: Sat Jan 8 16:02:36 2005
New Revision: 124690
URL: http://svn.apache.org/viewcvs?view=rev&rev=124690
Log:
Correct bugs in the transaction token component (and its associated support
classes). This feature is now ready for use.
Modified:
struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java
struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java
struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java
Modified: struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java
Url: http://svn.apache.org/viewcvs/struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java?view=diff&rev=124690&p1=struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java&r1=124689&p2=struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java&r2=124690
==============================================================================
--- struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java (original)
+++ struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/component/Token.java Sat Jan 8 16:02:36 2005
@@ -20,6 +20,8 @@
import javax.faces.application.FacesMessage;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.shale.faces.ShaleConstants;
import org.apache.shale.util.Messages;
import org.apache.shale.util.TokenProcessor;
@@ -37,6 +39,12 @@
/**
+ * <p>Log instance for this class.</p>
+ */
+ private static final Log log = LogFactory.getLog(Token.class);
+
+
+ /**
* <p>Message resources for this class
*/
private static Messages messages =
@@ -61,7 +69,7 @@
/**
* <p>Return the component family for this component.</p>
*/
- public String getFamiy() {
+ public String getFamily() {
return "org.apache.shale.Token";
}
@@ -78,28 +86,42 @@
public void validate(FacesContext context) {
super.validate(context);
- String token = (String) getSubmittedValue();
+ String token = (String) getValue();
+ if (log.isDebugEnabled()) {
+ log.debug("Validating token '" + token + "'");
+ }
TokenProcessor tp = getTokenProcessor(context);
if (!tp.verify(context, token)) {
+ if (log.isDebugEnabled()) {
+ log.debug(" Validation failed!");
+ }
setValid(false);
String summary = messages.getMessage("token.invalid");
FacesMessage message = new FacesMessage(summary);
message.setSeverity(FacesMessage.SEVERITY_ERROR);
+ context.addMessage(getClientId(context), message);
}
}
+ // ---------------------------------------------------------- Public Methods
+
+
/**
* <p>Return the transaction token value to be rendered for this occcurrence
* of this component. As a side effect, the transaction token value will
* be saved for verification on a subsequent submit.</p>
*/
- public Object getValue() {
+ public String getToken() {
FacesContext context = FacesContext.getCurrentInstance();
TokenProcessor tp = getTokenProcessor(context);
- return tp.generate(context);
+ String token = tp.generate(context);
+ if (log.isDebugEnabled()) {
+ log.debug("Generating token '" + token + "'");
+ }
+ return token;
}
Modified: struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java
Url: http://svn.apache.org/viewcvs/struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java?view=diff&rev=124690&p1=struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java&r1=124689&p2=struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java&r2=124690
==============================================================================
--- struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java (original)
+++ struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/renderer/TokenRenderer.java Sat Jan 8 16:02:36 2005
@@ -81,7 +81,8 @@
String clientId = token.getClientId(context);
writer.writeAttribute("id", clientId, "id");
writer.writeAttribute("name", clientId, "id");
- writer.writeAttribute("value", token.getValue(), "value");
+ writer.writeAttribute("type", "hidden", null);
+ writer.writeAttribute("value", token.getToken(), null);
}
}
Modified: struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java
Url: http://svn.apache.org/viewcvs/struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java?view=diff&rev=124690&p1=struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java&r1=124689&p2=struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java&r2=124690
==============================================================================
--- struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java (original)
+++ struts/sandbox/trunk/struts-shale/src/java/org/apache/shale/util/TokenProcessor.java Sat Jan 8 16:02:36 2005
@@ -22,7 +22,7 @@
import java.util.Set;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
+import javax.faces.el.PropertyResolver;
import org.apache.shale.faces.ShaleConstants;
/**
@@ -55,9 +55,10 @@
public synchronized String generate(FacesContext context) {
// Acquire the session identifier for this request
- ValueBinding vb =
- context.getApplication().createValueBinding("#{facesContext.session.id}");
- byte id[] = ((String) vb.getValue(context)).getBytes();
+ // (creating the session if necessary)
+ Object session = context.getExternalContext().getSession(true);
+ PropertyResolver pr = context.getApplication().getPropertyResolver();
+ byte id[] = ((String) pr.getValue(session, "id")).getBytes();
// Acquire the timestamp we will use for this request
long current = System.currentTimeMillis();
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org