Skip to content

Commit 6265ee4

Browse files
authored
Merge pull request #5581 from eclipse-ee4j/issue_5577_use_autocomplete=one-time-code_by_default_on_view_state_hidden_field
Fix #5577: use autocomplete="one-time-code" by default on view state hidden field
2 parents 2d6d3f4 + e91a203 commit 6265ee4

File tree

3 files changed

+20
-26
lines changed

3 files changed

+20
-26
lines changed

impl/src/main/java/com/sun/faces/renderkit/ClientSideStateHelper.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@
4141
import java.util.zip.GZIPInputStream;
4242
import java.util.zip.GZIPOutputStream;
4343

44+
import jakarta.faces.FacesException;
45+
import jakarta.faces.context.FacesContext;
46+
import jakarta.faces.context.ResponseWriter;
47+
4448
import com.sun.faces.RIConstants;
4549
import com.sun.faces.config.WebConfiguration.BooleanWebContextInitParameter;
4650
import com.sun.faces.util.DebugObjectOutputStream;
4751
import com.sun.faces.util.DebugUtil;
4852
import com.sun.faces.util.FacesLogger;
4953
import com.sun.faces.util.Util;
5054

51-
import jakarta.faces.FacesException;
52-
import jakarta.faces.context.FacesContext;
53-
import jakarta.faces.context.ResponseWriter;
54-
5555
/**
5656
* <p>
5757
* This <code>StateHelper</code> provides the functionality associated with client-side state saving.
@@ -160,9 +160,7 @@ public void writeState(FacesContext ctx, Object state, StringBuilder stateCaptur
160160
StringBuilder stateBuilder = new StringBuilder();
161161
doWriteState(ctx, state, new StringBuilderWriter(stateBuilder));
162162
writer.writeAttribute("value", stateBuilder.toString(), null);
163-
if (webConfig.isOptionEnabled(AutoCompleteOffOnViewState)) {
164-
writer.writeAttribute("autocomplete", "off", null);
165-
}
163+
writer.writeAttribute("autocomplete", webConfig.isOptionEnabled(AutoCompleteOffOnViewState) ? "off" : "one-time-code", null);
166164
writer.endElement("input");
167165

168166
writeClientWindowField(ctx, writer);

impl/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
import java.util.zip.GZIPInputStream;
4343
import java.util.zip.GZIPOutputStream;
4444

45+
import jakarta.faces.FacesException;
46+
import jakarta.faces.component.UIViewRoot;
47+
import jakarta.faces.context.ExternalContext;
48+
import jakarta.faces.context.FacesContext;
49+
import jakarta.faces.context.ResponseWriter;
50+
4551
import com.sun.faces.config.WebConfiguration;
4652
import com.sun.faces.config.WebConfiguration.WebContextInitParameter;
4753
import com.sun.faces.util.FacesLogger;
@@ -50,12 +56,6 @@
5056
import com.sun.faces.util.TypedCollections;
5157
import com.sun.faces.util.Util;
5258

53-
import jakarta.faces.FacesException;
54-
import jakarta.faces.component.UIViewRoot;
55-
import jakarta.faces.context.ExternalContext;
56-
import jakarta.faces.context.FacesContext;
57-
import jakarta.faces.context.ResponseWriter;
58-
5959
/**
6060
* This <code>StateHelper</code> provides the functionality associated with server-side state saving, though in
6161
* actuality, it is a hybrid between client and server.
@@ -214,9 +214,7 @@ public void writeState(FacesContext ctx, Object state, StringBuilder stateCaptur
214214
writer.writeAttribute("id", viewStateId, null);
215215
}
216216
writer.writeAttribute("value", id, null);
217-
if (webConfig.isOptionEnabled(AutoCompleteOffOnViewState)) {
218-
writer.writeAttribute("autocomplete", "off", null);
219-
}
217+
writer.writeAttribute("autocomplete", webConfig.isOptionEnabled(AutoCompleteOffOnViewState) ? "off" : "one-time-code", null);
220218
writer.endElement("input");
221219

222220
writeClientWindowField(ctx, writer);

impl/src/main/java/com/sun/faces/renderkit/StateHelper.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@
2727
import java.net.URLEncoder;
2828
import java.util.logging.Logger;
2929

30+
import jakarta.faces.context.FacesContext;
31+
import jakarta.faces.context.ResponseWriter;
32+
import jakarta.faces.lifecycle.ClientWindow;
33+
import jakarta.faces.render.RenderKitFactory;
34+
import jakarta.faces.render.ResponseStateManager;
35+
import jakarta.servlet.http.HttpSession;
36+
3037
import com.sun.faces.RIConstants;
3138
import com.sun.faces.config.WebConfiguration;
3239
import com.sun.faces.spi.SerializationProvider;
@@ -35,13 +42,6 @@
3542
import com.sun.faces.util.FacesLogger;
3643
import com.sun.faces.util.Util;
3744

38-
import jakarta.faces.context.FacesContext;
39-
import jakarta.faces.context.ResponseWriter;
40-
import jakarta.faces.lifecycle.ClientWindow;
41-
import jakarta.faces.render.RenderKitFactory;
42-
import jakarta.faces.render.ResponseStateManager;
43-
import jakarta.servlet.http.HttpSession;
44-
4545
/**
4646
* Common code for the default <code>StateHelper</code> implementations.
4747
*/
@@ -213,9 +213,7 @@ protected void writeClientWindowField(FacesContext context, ResponseWriter write
213213
writer.writeAttribute("name", CLIENT_WINDOW_PARAM.getName(context), null);
214214
writer.writeAttribute("id", Util.getClientWindowId(context), null);
215215
writer.writeAttribute("value", window.getId(), null);
216-
if (webConfig.isOptionEnabled(AutoCompleteOffOnViewState)) {
217-
writer.writeAttribute("autocomplete", "off", null);
218-
}
216+
writer.writeAttribute("autocomplete", webConfig.isOptionEnabled(AutoCompleteOffOnViewState) ? "off" : "one-time-code", null);
219217
writer.endElement("input");
220218
}
221219
}

0 commit comments

Comments
 (0)