Justin Richer
9 years ago
5 changed files with 188 additions and 12 deletions
@ -0,0 +1,32 @@
|
||||
/******************************************************************************* |
||||
* Copyright 2015 The MITRE Corporation |
||||
* and the MIT Kerberos and Internet Trust Consortium |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*******************************************************************************/ |
||||
|
||||
package org.mitre.openid.connect.service; |
||||
|
||||
/** |
||||
* @author jricher |
||||
* |
||||
*/ |
||||
public interface LoginHintExtracter { |
||||
|
||||
/** |
||||
* @param loginHint |
||||
* @return |
||||
*/ |
||||
public String extractHint(String loginHint); |
||||
|
||||
} |
@ -0,0 +1,59 @@
|
||||
/******************************************************************************* |
||||
* Copyright 2015 The MITRE Corporation |
||||
* and the MIT Kerberos and Internet Trust Consortium |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*******************************************************************************/ |
||||
|
||||
package org.mitre.openid.connect.service.impl; |
||||
|
||||
import org.mitre.openid.connect.model.UserInfo; |
||||
import org.mitre.openid.connect.service.LoginHintExtracter; |
||||
import org.mitre.openid.connect.service.UserInfoService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
||||
import com.google.common.base.Strings; |
||||
|
||||
/** |
||||
* Checks the login hint against the User Info collection, only populates it if a user is found. |
||||
* @author jricher |
||||
* |
||||
*/ |
||||
public class MatchLoginHintsAgainstUsers implements LoginHintExtracter { |
||||
|
||||
@Autowired |
||||
private UserInfoService userInfoService; |
||||
|
||||
/* (non-Javadoc) |
||||
* @see org.mitre.openid.connect.service.LoginHintTester#useHint(java.lang.String) |
||||
*/ |
||||
@Override |
||||
public String extractHint(String loginHint) { |
||||
if (Strings.isNullOrEmpty(loginHint)) { |
||||
return null; |
||||
} else { |
||||
UserInfo user = userInfoService.getByEmailAddress(loginHint); |
||||
if (user == null) { |
||||
user = userInfoService.getByUsername(loginHint); |
||||
if (user == null) { |
||||
return null; |
||||
} else { |
||||
return user.getPreferredUsername(); |
||||
} |
||||
} else { |
||||
return user.getPreferredUsername(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,38 @@
|
||||
/******************************************************************************* |
||||
* Copyright 2015 The MITRE Corporation |
||||
* and the MIT Kerberos and Internet Trust Consortium |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*******************************************************************************/ |
||||
|
||||
package org.mitre.openid.connect.service.impl; |
||||
|
||||
import org.mitre.openid.connect.service.LoginHintExtracter; |
||||
|
||||
/** |
||||
* Sends all login hints through to the login page regardless of setup. |
||||
* |
||||
* @author jricher |
||||
* |
||||
*/ |
||||
public class PassAllLoginHints implements LoginHintExtracter { |
||||
|
||||
/* (non-Javadoc) |
||||
* @see org.mitre.openid.connect.service.LoginHintTester#useHint(java.lang.String) |
||||
*/ |
||||
@Override |
||||
public String extractHint(String loginHint) { |
||||
return loginHint; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,48 @@
|
||||
/******************************************************************************* |
||||
* Copyright 2015 The MITRE Corporation |
||||
* and the MIT Kerberos and Internet Trust Consortium |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*******************************************************************************/ |
||||
|
||||
package org.mitre.openid.connect.service.impl; |
||||
|
||||
import org.mitre.openid.connect.service.LoginHintExtracter; |
||||
|
||||
import com.google.common.base.Strings; |
||||
|
||||
/** |
||||
* Passes login hints that don't start with "http" |
||||
* |
||||
* @author jricher |
||||
* |
||||
*/ |
||||
public class RemoveLoginHintsWithHTTP implements LoginHintExtracter { |
||||
|
||||
/* (non-Javadoc) |
||||
* @see org.mitre.openid.connect.service.LoginHintTester#useHint(java.lang.String) |
||||
*/ |
||||
@Override |
||||
public String extractHint(String loginHint) { |
||||
if (Strings.isNullOrEmpty(loginHint)) { |
||||
return null; |
||||
} else { |
||||
if (loginHint.startsWith("http")) { |
||||
return null; |
||||
} else { |
||||
return loginHint; |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue