Skip to content
This repository was archived by the owner on Dec 12, 2018. It is now read-only.

Commit b784f77

Browse files
authored
Merge pull request #1263 from stormpath/issue/1254
Updated default for id site callback to be per framework spec
2 parents 77da61b + d71c054 commit b784f77

File tree

17 files changed

+127
-12
lines changed

17 files changed

+127
-12
lines changed

extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/Config.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ public interface Config extends Map<String, String> {
7878

7979
ControllerConfig getVerifyConfig();
8080

81+
ControllerConfig getSamlConfig();
82+
8183
ChangePasswordConfig getChangePasswordConfig();
8284

8385
Saver<AuthenticationResult> getAuthenticationResultSaver();

extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/filter/DefaultFilterChainManagerConfigurer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ public FilterChainManager configure() throws ServletException {
115115
String unauthorizedUrlPattern = cleanUri(unauthorizedUrl);
116116
boolean unauthorizedChainSpecified = false;
117117

118-
//TODO 542: what is this?
119-
String samlUrl = "/saml";
118+
//fixed per https://github.com/stormpath/stormpath-sdk-java/issues/1254
119+
String samlUrl = config.getSamlConfig().getUri();
120120
String samlUrlPattern = cleanUri(samlUrl);
121121
String samlCallbackUrl = config.getCallbackUri();
122122
String samlCallbackPattern = cleanUri(samlCallbackUrl);

extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/filter/LoginFilterFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ protected void doConfigure(LoginController controller, Config config) {
4040
controller.setForgotPasswordUri(config.getForgotPasswordConfig().getUri());
4141
controller.setVerifyEnabled(config.getVerifyConfig().isEnabled());
4242
controller.setVerifyUri(config.getVerifyConfig().getUri());
43+
controller.setSamlUri(config.getSamlConfig().getUri());
4344
controller.setRegisterEnabledResolver(config.getRegisterEnabledResolver());
4445
controller.setRegisterUri(config.getRegisterConfig().getUri());
4546
controller.setLogoutUri(config.getLogoutConfig().getUri());

extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/impl/DefaultConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ public ControllerConfig getVerifyConfig() {
216216
return new ServletControllerConfig("verifyEmail", this);
217217
}
218218

219+
@Override
220+
public ControllerConfig getSamlConfig() {
221+
return new ServletControllerConfig("saml", this);
222+
}
223+
219224
@Override
220225
public ChangePasswordConfig getChangePasswordConfig() {
221226
return new ChangePasswordServletControllerConfig(this, "changePassword");

extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/LoginController.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public class LoginController extends FormController {
5050
private String verifyUri;
5151
private String registerUri;
5252
private String logoutUri;
53+
private String samlUri;
5354
private boolean verifyEnabled = true;
5455
private boolean forgotPasswordEnabled = true;
5556
private boolean idSiteEnabled;
@@ -79,6 +80,10 @@ public void setLogoutUri(String logoutUri) {
7980
this.logoutUri = logoutUri;
8081
}
8182

83+
public void setSamlUri(String samlUri) {
84+
this.samlUri = samlUri;
85+
}
86+
8287
public void setVerifyEnabled(boolean verifyEnabled) {
8388
this.verifyEnabled = verifyEnabled;
8489
}
@@ -149,6 +154,7 @@ public void init() throws Exception {
149154
Assert.hasText(this.registerUri, "registerUri property cannot be null or empty.");
150155
Assert.notNull(this.registerEnabledResolver, "registerEnabledResolver cannot be null.");
151156
Assert.hasText(this.logoutUri, "logoutUri property cannot be null or empty.");
157+
Assert.hasText(this.samlUri, "samlUri property cannot be null or empty.");
152158
Assert.notNull(this.authenticationResultSaver, "authenticationResultSaver property cannot be null.");
153159
Assert.notNull(this.errorModelFactory, "errorModelFactory cannot be null.");
154160
Assert.notNull(this.preLoginHandler, "preLoginHandler cannot be null.");
@@ -193,6 +199,7 @@ protected void appendModel(HttpServletRequest request, HttpServletResponse respo
193199
model.put("verifyUri", verifyUri);
194200
model.put("registerEnabled", registerEnabledResolver.get(request, response));
195201
model.put("registerUri", registerUri);
202+
model.put("samlUri", samlUri);
196203
model.put("oauthStateToken", UUID.randomUUID().toString());
197204
String status = request.getParameter("status");
198205
if (status != null) {

extensions/servlet/src/main/resources/META-INF/resources/WEB-INF/jsp/stormpath/login.jsp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@
150150
<c:set var="req" value="${pageContext.request}"/>
151151
<input type="hidden" id="baseUrl"
152152
value="${req.scheme}://${req.serverName}:${req.serverPort}${req.contextPath}"/>
153+
<input type="hidden" id="samlUri" value="${samlUri}"/>
153154
</div>
154155
</div>
155156

extensions/servlet/src/main/resources/META-INF/resources/assets/js/stormpath.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ function baseUrl() {
4646
return $('#baseUrl').val();
4747
}
4848

49+
function samlUri() {
50+
return $('#samlUri').val();
51+
}
52+
4953
function linkedinLogin(clientId, scope) {
5054
scope = scope || 'r_emailaddress r_basicprofile';
5155
window.location.replace(
@@ -91,7 +95,7 @@ function githubLogin(clientId, scope) {
9195
}
9296

9397
function samlLogin(href) {
94-
window.location.replace(buildUrl(baseUrl() + '/saml', {'href': href}));
98+
window.location.replace(buildUrl(baseUrl() + samlUri(), {'href': href}));
9599
}
96100

97101
function facebookLogin(appId, scope) {

extensions/servlet/src/main/resources/com/stormpath/sdk/servlet/config/web.stormpath.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ stormpath.web.verifyEmail.form.fields.email.label = stormpath.web.verifyEmail.fo
105105
stormpath.web.verifyEmail.form.fields.email.placeholder = stormpath.web.verifyEmail.form.fields.email.placeholder
106106
stormpath.web.verifyEmail.form.fields.email.required = true
107107
stormpath.web.verifyEmail.form.fields.email.type = text
108+
109+
## default SAML SP initiated endpoint
110+
stormpath.web.saml.uri = /saml
111+
108112
stormpath.web.login.enabled = true
109113
# The context-relative path to the login view:
110114
stormpath.web.login.uri = /login

extensions/servlet/src/test/groovy/com/stormpath/sdk/servlet/config/SpecConfigVersusWebPropertiesTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class SpecConfigVersusWebPropertiesTest {
8585
specProperties.containsKey(k) ? null : k
8686
}
8787

88-
def expected_diff_size = 84
88+
def expected_diff_size = 85
8989

9090
if (diff.size != expected_diff_size) {
9191
println "It looks like a property was added or removed from the Framework Spec or web.stormpath.properties."

extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/login.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
</div>
110110
<input type="hidden" id="baseUrl"
111111
th:value="${#httpServletRequest.scheme + '://' + #httpServletRequest.serverName + ':'+#httpServletRequest.serverPort+#httpServletRequest.contextPath}"/>
112+
<input type="hidden" id="samlUri" th:value="@{${samlUri}}"/>
112113
</div>
113114
</div>
114115

0 commit comments

Comments
 (0)