Commit 267885c5a7bb794c86dea042d003106d9c1b3879
1 parent
da970e93
Exists in
master
Ajuste na Serialização do SecurityObserver
Showing
1 changed file
with
13 additions
and
5 deletions
Show diff stats
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityObserver.java
| ... | ... | @@ -64,7 +64,7 @@ public class SecurityObserver implements Serializable { |
| 64 | 64 | @Inject |
| 65 | 65 | private JsfSecurityConfig config; |
| 66 | 66 | |
| 67 | - private Map<String, Object> savedParams = new HashMap<String, Object>(); | |
| 67 | + private Map<String, Object> savedParams; | |
| 68 | 68 | |
| 69 | 69 | private String savedViewId; |
| 70 | 70 | |
| ... | ... | @@ -74,13 +74,21 @@ public class SecurityObserver implements Serializable { |
| 74 | 74 | public SecurityObserver() { |
| 75 | 75 | clear(); |
| 76 | 76 | } |
| 77 | + | |
| 78 | + private Map<String, Object> getSavedParams(){ | |
| 79 | + if(this.savedParams == null) { | |
| 80 | + this.savedParams = new HashMap<String, Object>(); | |
| 81 | + } | |
| 82 | + | |
| 83 | + return this.savedParams; | |
| 84 | + } | |
| 77 | 85 | |
| 78 | 86 | private void saveCurrentState() { |
| 79 | 87 | clear(); |
| 80 | 88 | FacesContext facesContext = Beans.getReference(FacesContext.class); |
| 81 | 89 | |
| 82 | 90 | if (!config.getLoginPage().equals(facesContext.getViewRoot().getViewId())) { |
| 83 | - savedParams.putAll(facesContext.getExternalContext().getRequestParameterMap()); | |
| 91 | + getSavedParams().putAll(facesContext.getExternalContext().getRequestParameterMap()); | |
| 84 | 92 | savedViewId = facesContext.getViewRoot().getViewId(); |
| 85 | 93 | } |
| 86 | 94 | } |
| ... | ... | @@ -106,11 +114,11 @@ public class SecurityObserver implements Serializable { |
| 106 | 114 | |
| 107 | 115 | try { |
| 108 | 116 | if (savedViewId != null) { |
| 109 | - Redirector.redirect(savedViewId, savedParams); | |
| 117 | + Redirector.redirect(savedViewId, getSavedParams()); | |
| 110 | 118 | |
| 111 | 119 | } else if (config.isRedirectEnabled()) { |
| 112 | 120 | redirectedFromConfig = true; |
| 113 | - Redirector.redirect(config.getRedirectAfterLogin(), savedParams); | |
| 121 | + Redirector.redirect(config.getRedirectAfterLogin(), getSavedParams()); | |
| 114 | 122 | } |
| 115 | 123 | |
| 116 | 124 | } catch (PageNotFoundException cause) { |
| ... | ... | @@ -155,6 +163,6 @@ public class SecurityObserver implements Serializable { |
| 155 | 163 | |
| 156 | 164 | private void clear() { |
| 157 | 165 | savedViewId = null; |
| 158 | - savedParams.clear(); | |
| 166 | + getSavedParams().clear(); | |
| 159 | 167 | } |
| 160 | 168 | } | ... | ... |