mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-24 23:17:56 +01:00
Remove openid
This commit is contained in:
parent
cade40e1a3
commit
39ff095df7
@ -86,9 +86,13 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.security</groupId>
|
<groupId>org.springframework.security</groupId>
|
||||||
<artifactId>spring-security-openid</artifactId>
|
<artifactId>spring-security-oauth2-client</artifactId>
|
||||||
|
<version>${org.springframework.addons}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.security</groupId>
|
||||||
|
<artifactId>spring-security-oauth2-jose</artifactId>
|
||||||
<version>${org.springframework.addons}</version>
|
<version>${org.springframework.addons}</version>
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
|
@ -45,9 +45,6 @@ public class RequestPropertiesInterceptor extends HandlerInterceptorAdapter {
|
|||||||
@Value("${security.type}")
|
@Value("${security.type}")
|
||||||
private String securityType;
|
private String securityType;
|
||||||
|
|
||||||
@Value("${security.openid.enabled}")
|
|
||||||
private Boolean openIdEnabled;
|
|
||||||
|
|
||||||
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception {
|
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception {
|
||||||
|
|
||||||
request.setAttribute("google.analytics.enabled", analyticsEnabled);
|
request.setAttribute("google.analytics.enabled", analyticsEnabled);
|
||||||
@ -55,7 +52,6 @@ public class RequestPropertiesInterceptor extends HandlerInterceptorAdapter {
|
|||||||
request.setAttribute("google.ads.enabled", adsEnabled);
|
request.setAttribute("google.ads.enabled", adsEnabled);
|
||||||
request.setAttribute("site.homepage", siteHomepage);
|
request.setAttribute("site.homepage", siteHomepage);
|
||||||
request.setAttribute("security.type", securityType);
|
request.setAttribute("security.type", securityType);
|
||||||
request.setAttribute("security.openid.enabled", openIdEnabled);
|
|
||||||
|
|
||||||
|
|
||||||
// If the property could not be resolved, try to infer one from the request...
|
// If the property could not be resolved, try to infer one from the request...
|
||||||
|
@ -19,24 +19,16 @@
|
|||||||
package com.wisemapping.security;
|
package com.wisemapping.security;
|
||||||
|
|
||||||
|
|
||||||
import com.wisemapping.exceptions.WiseMappingException;
|
|
||||||
import com.wisemapping.model.AuthenticationType;
|
|
||||||
import com.wisemapping.model.User;
|
import com.wisemapping.model.User;
|
||||||
import com.wisemapping.service.UserService;
|
import com.wisemapping.service.UserService;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import org.springframework.dao.DataAccessException;
|
import org.springframework.dao.DataAccessException;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
import org.springframework.security.openid.OpenIDAttribute;
|
|
||||||
import org.springframework.security.openid.OpenIDAuthenticationToken;
|
|
||||||
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
public class UserDetailsService
|
public class UserDetailsService
|
||||||
implements org.springframework.security.core.userdetails.UserDetailsService, org.springframework.security.core.userdetails.AuthenticationUserDetailsService<OpenIDAuthenticationToken> {
|
implements org.springframework.security.core.userdetails.UserDetailsService{
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
private String adminUser;
|
private String adminUser;
|
||||||
|
|
||||||
@ -51,76 +43,76 @@ public class UserDetailsService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
@NotNull
|
// @NotNull
|
||||||
public UserDetails loadUserDetails(@NotNull OpenIDAuthenticationToken token) throws UsernameNotFoundException {
|
// public UserDetails loadUserDetails(@NotNull OpenIDAuthenticationToken token) throws UsernameNotFoundException {
|
||||||
|
//
|
||||||
|
// final User tUser = buildUserFromToken(token);
|
||||||
|
// final User dbUser = userService.getUserBy(tUser.getEmail());
|
||||||
|
//
|
||||||
|
// final User result;
|
||||||
|
// if (dbUser != null) {
|
||||||
|
// if (!token.getIdentityUrl().equals(dbUser.getAuthenticatorUri())) {
|
||||||
|
// throw new IllegalStateException("Identity url for this user can not change:" + token.getIdentityUrl());
|
||||||
|
// }
|
||||||
|
// result = dbUser;
|
||||||
|
// } else {
|
||||||
|
// try {
|
||||||
|
// tUser.setAuthenticationType(AuthenticationType.OPENID);
|
||||||
|
// tUser.setAuthenticatorUri(token.getIdentityUrl());
|
||||||
|
//
|
||||||
|
// result = userService.createUser(tUser, false, false);
|
||||||
|
// } catch (WiseMappingException e) {
|
||||||
|
// throw new IllegalStateException(e);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// return new UserDetails(result, isAdmin(result.getEmail()));
|
||||||
|
// }
|
||||||
|
|
||||||
final User tUser = buildUserFromToken(token);
|
// @NotNull
|
||||||
final User dbUser = userService.getUserBy(tUser.getEmail());
|
// private User buildUserFromToken(@NotNull OpenIDAuthenticationToken token) {
|
||||||
|
// final User result = new User();
|
||||||
final User result;
|
//
|
||||||
if (dbUser != null) {
|
// String lastName = null;
|
||||||
if (!token.getIdentityUrl().equals(dbUser.getAuthenticatorUri())) {
|
// String firstName = null;
|
||||||
throw new IllegalStateException("Identity url for this user can not change:" + token.getIdentityUrl());
|
// String email = null;
|
||||||
}
|
// String fullName = null;
|
||||||
result = dbUser;
|
//
|
||||||
} else {
|
// final List<OpenIDAttribute> attributes = token.getAttributes();
|
||||||
try {
|
// for (OpenIDAttribute attribute : attributes) {
|
||||||
tUser.setAuthenticationType(AuthenticationType.OPENID);
|
// if (attribute.getName().equals("email")) {
|
||||||
tUser.setAuthenticatorUri(token.getIdentityUrl());
|
// email = attribute.getValues().get(0);
|
||||||
|
// }
|
||||||
result = userService.createUser(tUser, false, false);
|
//
|
||||||
} catch (WiseMappingException e) {
|
// if (attribute.getName().equals("firstname")) {
|
||||||
throw new IllegalStateException(e);
|
// firstName = attribute.getValues().get(0);
|
||||||
}
|
//
|
||||||
|
// }
|
||||||
}
|
//
|
||||||
return new UserDetails(result, isAdmin(result.getEmail()));
|
// if (attribute.getName().equals("lastname")) {
|
||||||
}
|
// lastName = attribute.getValues().get(0);
|
||||||
|
// }
|
||||||
@NotNull
|
//
|
||||||
private User buildUserFromToken(@NotNull OpenIDAuthenticationToken token) {
|
// if (attribute.getName().equals("fullname")) {
|
||||||
final User result = new User();
|
// fullName = attribute.getValues().get(0);
|
||||||
|
// }
|
||||||
String lastName = null;
|
//
|
||||||
String firstName = null;
|
// }
|
||||||
String email = null;
|
// if (lastName == null || firstName == null) {
|
||||||
String fullName = null;
|
// result.setFirstname(fullName);
|
||||||
|
// result.setLastname("");
|
||||||
final List<OpenIDAttribute> attributes = token.getAttributes();
|
// } else {
|
||||||
for (OpenIDAttribute attribute : attributes) {
|
// result.setLastname(lastName);
|
||||||
if (attribute.getName().equals("email")) {
|
// result.setFirstname(firstName);
|
||||||
email = attribute.getValues().get(0);
|
// }
|
||||||
}
|
// result.setEmail(email);
|
||||||
|
// result.setPassword("");
|
||||||
if (attribute.getName().equals("firstname")) {
|
//
|
||||||
firstName = attribute.getValues().get(0);
|
// final Calendar now = Calendar.getInstance();
|
||||||
|
// result.setActivationDate(now);
|
||||||
}
|
// return result;
|
||||||
|
// }
|
||||||
if (attribute.getName().equals("lastname")) {
|
|
||||||
lastName = attribute.getValues().get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (attribute.getName().equals("fullname")) {
|
|
||||||
fullName = attribute.getValues().get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
if (lastName == null || firstName == null) {
|
|
||||||
result.setFirstname(fullName);
|
|
||||||
result.setLastname("");
|
|
||||||
} else {
|
|
||||||
result.setLastname(lastName);
|
|
||||||
result.setFirstname(firstName);
|
|
||||||
}
|
|
||||||
result.setEmail(email);
|
|
||||||
result.setPassword("");
|
|
||||||
|
|
||||||
final Calendar now = Calendar.getInstance();
|
|
||||||
result.setActivationDate(now);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isAdmin(@Nullable String email) {
|
private boolean isAdmin(@Nullable String email) {
|
||||||
return email != null && adminUser != null && email.trim().endsWith(adminUser);
|
return email != null && adminUser != null && email.trim().endsWith(adminUser);
|
||||||
|
@ -45,16 +45,16 @@ public class LoginController {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "loginopenid", method = RequestMethod.GET)
|
// @RequestMapping(value = "loginopenid", method = RequestMethod.GET)
|
||||||
protected ModelAndView showLoginOpenIdPage() {
|
// protected ModelAndView showLoginOpenIdPage() {
|
||||||
final User user = Utils.getUser(false);
|
// final User user = Utils.getUser(false);
|
||||||
ModelAndView result;
|
// ModelAndView result;
|
||||||
if (user != null) {
|
// if (user != null) {
|
||||||
result = new ModelAndView("forward:/c/maps/");
|
// result = new ModelAndView("forward:/c/maps/");
|
||||||
} else {
|
// } else {
|
||||||
result = new ModelAndView("loginopenid");
|
// result = new ModelAndView("loginopenid");
|
||||||
}
|
// }
|
||||||
return result;
|
// return result;
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -48,11 +48,6 @@ public class PublicPagesController {
|
|||||||
return "crew";
|
return "crew";
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "GCFInstall")
|
|
||||||
public String showGCFInstallationPage() {
|
|
||||||
return "GCFInstall";
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = "keyboard")
|
@RequestMapping(value = "keyboard")
|
||||||
public String newsPage() {
|
public String newsPage() {
|
||||||
return "keyboard";
|
return "keyboard";
|
||||||
|
@ -138,9 +138,6 @@ security.ldap.auth.attribute=mail
|
|||||||
security.ldap.lastName.attribute=sn
|
security.ldap.lastName.attribute=sn
|
||||||
security.ldap.firstName.attribute=givenName
|
security.ldap.firstName.attribute=givenName
|
||||||
|
|
||||||
# Enable OpenId Authentication.
|
|
||||||
security.openid.enabled=false
|
|
||||||
|
|
||||||
# REST Documentation
|
# REST Documentation
|
||||||
#
|
#
|
||||||
# This properties are used for REST API Documentation( http://localhost:8080/wisemapping/doc/rest/index.html)
|
# This properties are used for REST API Documentation( http://localhost:8080/wisemapping/doc/rest/index.html)
|
||||||
@ -149,6 +146,14 @@ documentation.services.basePath=http://localhost:8080/service
|
|||||||
documentation.services.version=3.0.1
|
documentation.services.version=3.0.1
|
||||||
|
|
||||||
|
|
||||||
|
# OAuth2 Security
|
||||||
|
|
||||||
|
#spring.security.oauth2.client.registration.google.client-id=<your client id>
|
||||||
|
#spring.security.oauth2.client.registration.google.client-secret=<your client secret>
|
||||||
|
|
||||||
|
#spring.security.oauth2.client.registration.facebook.client-id=<your client id>
|
||||||
|
#spring.security.oauth2.client.registration.facebook.client-secret=<your client secret>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
log4j.rootLogger=WARN, stdout, R
|
log4j.rootLogger=TRACE, stdout, R
|
||||||
log4j.logger.com.wisemapping=INFO,stdout,R
|
log4j.logger.com.wisemapping=TRACE,stdout,R
|
||||||
log4j.logger.org.springframework=INFO,stdout,R
|
log4j.logger.org.springframework=TRACE,stdout,R
|
||||||
log4j.logger.org.hibernate.engine.internal.StatefulPersistenceContext=ERROR,stdout,R
|
log4j.logger.org.hibernate.engine.internal.StatefulPersistenceContext=ERROR,stdout,R
|
||||||
|
|
||||||
# Stdout logger <20>
|
# Stdout logger <20>
|
||||||
@ -9,7 +9,7 @@ log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
|||||||
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
|
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
|
||||||
|
|
||||||
|
|
||||||
# File Writter Logger <20>
|
# File Writer Logger <20>
|
||||||
log4j.appender.R=org.apache.log4j.RollingFileAppender
|
log4j.appender.R=org.apache.log4j.RollingFileAppender
|
||||||
log4j.appender.R.File=wisemapping.log
|
log4j.appender.R.File=wisemapping.log
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE tiles-definitions PUBLIC
|
<!DOCTYPE tiles-definitions PUBLIC
|
||||||
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
|
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
|
||||||
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
|
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
|
||||||
|
|
||||||
<tiles-definitions>
|
<tiles-definitions>
|
||||||
|
|
||||||
@ -37,16 +37,6 @@
|
|||||||
<definition name="iframeWrapper" template="/jsp/iframeWrapper.jsp"/>
|
<definition name="iframeWrapper" template="/jsp/iframeWrapper.jsp"/>
|
||||||
|
|
||||||
<!-- Error Pages -->
|
<!-- Error Pages -->
|
||||||
<definition name="GCFPluginRequired" extends="pageTemplate">
|
|
||||||
<put-attribute name="body" value="/jsp/GCFPluginRequired.jsp"/>
|
|
||||||
<put-attribute name="title" value="INSTALL_CFG"/>
|
|
||||||
</definition>
|
|
||||||
|
|
||||||
<definition name="GCFInstall" extends="pageTemplate">
|
|
||||||
<put-attribute name="body" value="/jsp/GCFInstall.jsp"/>
|
|
||||||
<put-attribute name="title" value="INSTALL_CFG"/>
|
|
||||||
</definition>
|
|
||||||
|
|
||||||
<definition name="unexpectedError" extends="errorTemplate">
|
<definition name="unexpectedError" extends="errorTemplate">
|
||||||
<put-attribute name="title" value="UNEXPECTED_ERROR"/>
|
<put-attribute name="title" value="UNEXPECTED_ERROR"/>
|
||||||
<put-attribute name="details" value="UNEXPECTED_ERROR_DETAILS"/>
|
<put-attribute name="details" value="UNEXPECTED_ERROR_DETAILS"/>
|
||||||
@ -68,19 +58,12 @@
|
|||||||
<put-attribute name="body" value="/jsp/userForgotPasswordSuccess.jsp"/>
|
<put-attribute name="body" value="/jsp/userForgotPasswordSuccess.jsp"/>
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
<!-- Main Pages -->
|
|
||||||
<definition name="login" extends="pageTemplate">
|
<definition name="login" extends="pageTemplate">
|
||||||
<put-attribute name="title" value="LOGIN"/>
|
<put-attribute name="title" value="LOGIN"/>
|
||||||
<put-attribute name="body" value="/jsp/login.jsp"/>
|
<put-attribute name="body" value="/jsp/login.jsp"/>
|
||||||
<put-attribute name="removeSignin" value="true"/>
|
<put-attribute name="removeSignin" value="true"/>
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
<definition name="loginopenid" extends="pageTemplate">
|
|
||||||
<put-attribute name="title" value="LOGIN"/>
|
|
||||||
<put-attribute name="body" value="/jsp/loginOpenId.jsp"/>
|
|
||||||
<put-attribute name="removeSignin" value="true"/>
|
|
||||||
</definition>
|
|
||||||
|
|
||||||
<definition name="termsOfUse" extends="pageTemplate">
|
<definition name="termsOfUse" extends="pageTemplate">
|
||||||
<put-attribute name="title" value="TERM_OF_USE"/>
|
<put-attribute name="title" value="TERM_OF_USE"/>
|
||||||
<put-attribute name="body" value="/jsp/termsOfUse.jsp"/>
|
<put-attribute name="body" value="/jsp/termsOfUse.jsp"/>
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
<sec:http pattern="/favicon.ico" security="none"/>
|
<sec:http pattern="/favicon.ico" security="none"/>
|
||||||
|
|
||||||
<sec:http pattern="/c/login" security="none"/>
|
<sec:http pattern="/c/login" security="none"/>
|
||||||
<sec:http pattern="/c/loginopenid" security="none"/>
|
|
||||||
<sec:http pattern="/c/user/registration" security="none"/>
|
<sec:http pattern="/c/user/registration" security="none"/>
|
||||||
<sec:http pattern="/c/user/resetPassword" security="none"/>
|
<sec:http pattern="/c/user/resetPassword" security="none"/>
|
||||||
<sec:http pattern="/c/home" security="none"/>
|
<sec:http pattern="/c/home" security="none"/>
|
||||||
@ -23,7 +22,6 @@
|
|||||||
<sec:http pattern="/c/maps/*/embed" security="none"/>
|
<sec:http pattern="/c/maps/*/embed" security="none"/>
|
||||||
<sec:http pattern="/c/maps/*/try" security="none"/>
|
<sec:http pattern="/c/maps/*/try" security="none"/>
|
||||||
<sec:http pattern="/c/maps/*/public" security="none"/>
|
<sec:http pattern="/c/maps/*/public" security="none"/>
|
||||||
<sec:http pattern="/c/GCFInstall" security="none"/>
|
|
||||||
<sec:http pattern="/c/restful/maps/*/document/xml-pub" security="none"/>
|
<sec:http pattern="/c/restful/maps/*/document/xml-pub" security="none"/>
|
||||||
|
|
||||||
<sec:http pattern="/c/publicview.htm" security="none"/>
|
<sec:http pattern="/c/publicview.htm" security="none"/>
|
||||||
@ -58,31 +56,6 @@
|
|||||||
authentication-failure-url="/c/login?login_error=2"
|
authentication-failure-url="/c/login?login_error=2"
|
||||||
login-processing-url="/c/perform-login"/>
|
login-processing-url="/c/perform-login"/>
|
||||||
|
|
||||||
<sec:openid-login user-service-ref="userDetailsService"
|
|
||||||
authentication-failure-url="/c/login.jsp?login_error=true"
|
|
||||||
login-processing-url="/c/j_spring_openid_security_check">
|
|
||||||
|
|
||||||
<sec:attribute-exchange identifier-match="https://www.google.com/.*">
|
|
||||||
<sec:openid-attribute name="email" type="http://axschema.org/contact/email" required="true" count="1"/>
|
|
||||||
<sec:openid-attribute name="firstname" type="http://axschema.org/namePerson/first" required="true"/>
|
|
||||||
<sec:openid-attribute name="lastname" type="http://axschema.org/namePerson/last" required="true"/>
|
|
||||||
</sec:attribute-exchange>
|
|
||||||
|
|
||||||
<sec:attribute-exchange identifier-match=".*yahoo.com.*">
|
|
||||||
<sec:openid-attribute name="email" type="http://axschema.org/contact/email" required="true"/>
|
|
||||||
<sec:openid-attribute name="fullname" type="http://axschema.org/namePerson" required="true"/>
|
|
||||||
</sec:attribute-exchange>
|
|
||||||
|
|
||||||
<sec:attribute-exchange identifier-match=".*yahoo.com.*">
|
|
||||||
<sec:openid-attribute name="email" type="http://axschema.org/contact/email" required="true"/>
|
|
||||||
<sec:openid-attribute name="fullname" type="http://axschema.org/namePerson" required="true"/>
|
|
||||||
</sec:attribute-exchange>
|
|
||||||
|
|
||||||
<sec:attribute-exchange identifier-match=".*myopenid.com.*">
|
|
||||||
<sec:openid-attribute name="email" type="http://schema.openid.net/contact/email" required="true"/>
|
|
||||||
<sec:openid-attribute name="fullname" type="http://schema.openid.net/namePerson" required="true"/>
|
|
||||||
</sec:attribute-exchange>
|
|
||||||
</sec:openid-login>
|
|
||||||
<sec:remember-me key="wisemapping-hashed-key"/>
|
<sec:remember-me key="wisemapping-hashed-key"/>
|
||||||
<sec:logout logout-url="/c/logout" invalidate-session="true" logout-success-url="/c/login"/>
|
<sec:logout logout-url="/c/logout" invalidate-session="true" logout-success-url="/c/login"/>
|
||||||
</sec:http>
|
</sec:http>
|
||||||
|
@ -1,69 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple OpenID Plugin
|
|
||||||
http://code.google.com/p/openid-selector/
|
|
||||||
|
|
||||||
This code is licensed under the New BSD License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#openid_form {
|
|
||||||
width: 580px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#openid_form legend {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#openid_choice {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#openid_input_area {
|
|
||||||
clear: both;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#openid_btns, #openid_btns br {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#openid_highlight {
|
|
||||||
padding: 3px;
|
|
||||||
background-color: #FFFCC9;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.openid_large_btn {
|
|
||||||
width: 100px;
|
|
||||||
height: 60px;
|
|
||||||
/* fix for IE 6 only: http://en.wikipedia.org/wiki/CSS_filter#Underscore_hack */
|
|
||||||
_width: 102px;
|
|
||||||
_height: 62px;
|
|
||||||
|
|
||||||
border: 1px solid #DDD;
|
|
||||||
margin: 3px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.openid_small_btn {
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
/* fix for IE 6 only: http://en.wikipedia.org/wiki/CSS_filter#Underscore_hack */
|
|
||||||
_width: 26px;
|
|
||||||
_height: 26px;
|
|
||||||
|
|
||||||
border: 1px solid #DDD;
|
|
||||||
margin: 3px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.openid_large_btn:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.openid_large_btn:focus {
|
|
||||||
-moz-outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.openid_selected {
|
|
||||||
border: 4px solid #DDD;
|
|
||||||
}
|
|
@ -1,96 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple OpenID Plugin
|
|
||||||
http://code.google.com/p/openid-selector/
|
|
||||||
|
|
||||||
This code is licensed under the New BSD License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var providers_large = {
|
|
||||||
google : {
|
|
||||||
name : 'Google',
|
|
||||||
url : 'https://www.google.com/accounts/o8/id'
|
|
||||||
},
|
|
||||||
yahoo : {
|
|
||||||
name : 'Yahoo',
|
|
||||||
url : 'http://me.yahoo.com/'
|
|
||||||
},
|
|
||||||
aol : {
|
|
||||||
name : 'AOL',
|
|
||||||
label : 'Enter your AOL screenname.',
|
|
||||||
url : 'http://openid.aol.com/{username}'
|
|
||||||
},
|
|
||||||
myopenid : {
|
|
||||||
name : 'MyOpenID',
|
|
||||||
label : 'Enter your MyOpenID username.',
|
|
||||||
url : 'http://{username}.myopenid.com/'
|
|
||||||
},
|
|
||||||
openid : {
|
|
||||||
name : 'OpenID',
|
|
||||||
label : 'Enter your OpenID.',
|
|
||||||
url : null
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var providers_small = {
|
|
||||||
livejournal : {
|
|
||||||
name : 'LiveJournal',
|
|
||||||
label : 'Enter your Livejournal username.',
|
|
||||||
url : 'http://{username}.livejournal.com/'
|
|
||||||
},
|
|
||||||
/* flickr: {
|
|
||||||
name: 'Flickr',
|
|
||||||
label: 'Enter your Flickr username.',
|
|
||||||
url: 'http://flickr.com/{username}/'
|
|
||||||
}, */
|
|
||||||
/* technorati: {
|
|
||||||
name: 'Technorati',
|
|
||||||
label: 'Enter your Technorati username.',
|
|
||||||
url: 'http://technorati.com/people/technorati/{username}/'
|
|
||||||
}, */
|
|
||||||
wordpress : {
|
|
||||||
name : 'Wordpress',
|
|
||||||
label : 'Enter your Wordpress.com username.',
|
|
||||||
url : 'http://{username}.wordpress.com/'
|
|
||||||
},
|
|
||||||
blogger : {
|
|
||||||
name : 'Blogger',
|
|
||||||
label : 'Your Blogger account',
|
|
||||||
url : 'http://{username}.blogspot.com/'
|
|
||||||
},
|
|
||||||
verisign : {
|
|
||||||
name : 'Verisign',
|
|
||||||
label : 'Your Verisign username',
|
|
||||||
url : 'http://{username}.pip.verisignlabs.com/'
|
|
||||||
},
|
|
||||||
/* vidoop: {
|
|
||||||
name: 'Vidoop',
|
|
||||||
label: 'Your Vidoop username',
|
|
||||||
url: 'http://{username}.myvidoop.com/'
|
|
||||||
}, */
|
|
||||||
/* launchpad: {
|
|
||||||
name: 'Launchpad',
|
|
||||||
label: 'Your Launchpad username',
|
|
||||||
url: 'https://launchpad.net/~{username}'
|
|
||||||
}, */
|
|
||||||
claimid : {
|
|
||||||
name : 'ClaimID',
|
|
||||||
label : 'Your ClaimID username',
|
|
||||||
url : 'http://claimid.com/{username}'
|
|
||||||
},
|
|
||||||
clickpass : {
|
|
||||||
name : 'ClickPass',
|
|
||||||
label : 'Enter your ClickPass username',
|
|
||||||
url : 'http://clickpass.com/public/{username}'
|
|
||||||
},
|
|
||||||
google_profile : {
|
|
||||||
name : 'Google Profile',
|
|
||||||
label : 'Enter your Google Profile username',
|
|
||||||
url : 'http://www.google.com/profiles/{username}'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
openid.locale = 'en';
|
|
||||||
openid.sprite = 'en'; // reused in german& japan localization
|
|
||||||
openid.demo_text = 'In client demo mode. Normally would have submitted OpenID:';
|
|
||||||
openid.signin_text = 'Sign-In';
|
|
||||||
openid.image_title = 'log in with {provider}';
|
|
@ -1,203 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple OpenID Plugin
|
|
||||||
http://code.google.com/p/openid-selector/
|
|
||||||
|
|
||||||
This code is licensed under the New BSD License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var providers;
|
|
||||||
var openid;
|
|
||||||
(function ($) {
|
|
||||||
openid = {
|
|
||||||
version: '1.3', // version constant
|
|
||||||
demo: false,
|
|
||||||
demo_text: null,
|
|
||||||
cookie_expires: 6 * 30, // 6 months.
|
|
||||||
cookie_name: 'openid_provider',
|
|
||||||
cookie_path: '/',
|
|
||||||
|
|
||||||
img_path: 'images/',
|
|
||||||
locale: null, // is set in openid-<locale>.js
|
|
||||||
sprite: null, // usually equals to locale, is set in
|
|
||||||
// openid-<locale>.js
|
|
||||||
signin_text: null, // text on submit button on the form
|
|
||||||
all_small: false, // output large providers w/ small icons
|
|
||||||
no_sprite: false, // don't use sprite image
|
|
||||||
image_title: '{provider}', // for image title
|
|
||||||
|
|
||||||
input_id: null,
|
|
||||||
provider_url: null,
|
|
||||||
provider_id: null,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class constructor
|
|
||||||
*
|
|
||||||
* @return {Void}
|
|
||||||
*/
|
|
||||||
init: function (input_id) {
|
|
||||||
providers = $.extend({}, providers_large, providers_small);
|
|
||||||
var openid_btns = $('#openid_btns');
|
|
||||||
this.input_id = input_id;
|
|
||||||
$('#openid_choice').show();
|
|
||||||
$('#openid_input_area').empty();
|
|
||||||
var i = 0;
|
|
||||||
// add box for each provider
|
|
||||||
var id, box;
|
|
||||||
for (id in providers_large) {
|
|
||||||
box = this.getBoxHTML(id, providers_large[id], (this.all_small ? 'small' : 'large'), i++);
|
|
||||||
openid_btns.append(box);
|
|
||||||
}
|
|
||||||
if (providers_small) {
|
|
||||||
openid_btns.append('<br/>');
|
|
||||||
for (id in providers_small) {
|
|
||||||
box = this.getBoxHTML(id, providers_small[id], 'small', i++);
|
|
||||||
openid_btns.append(box);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$('#openid_form').submit(this.submit);
|
|
||||||
var box_id = this.readCookie();
|
|
||||||
if (box_id) {
|
|
||||||
this.signin(box_id, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return {String}
|
|
||||||
*/
|
|
||||||
getBoxHTML: function (box_id, provider, box_size, index) {
|
|
||||||
if (this.no_sprite) {
|
|
||||||
var image_ext = box_size == 'small' ? '.ico.gif' : '.gif';
|
|
||||||
return '<a title="' + this.image_title.replace('{provider}', provider.name) + '" href="javascript:openid.signin(\'' + box_id + '\');"'
|
|
||||||
+ ' style="background: #FFF url(' + this.img_path + '../images.' + box_size + '/' + box_id + image_ext + ') no-repeat center center" '
|
|
||||||
+ 'class="' + box_id + ' openid_' + box_size + '_btn"></a>';
|
|
||||||
}
|
|
||||||
var x = box_size == 'small' ? -index * 24 : -index * 100;
|
|
||||||
var y = box_size == 'small' ? -60 : 0;
|
|
||||||
return '<a title="' + this.image_title.replace('{provider}', provider.name) + '" href="javascript:openid.signin(\'' + box_id + '\');"'
|
|
||||||
+ ' style="background: #FFF url(' + this.img_path + 'openid-providers-' + this.sprite + '.png); background-position: ' + x + 'px ' + y + 'px" '
|
|
||||||
+ 'class="' + box_id + ' openid_' + box_size + '_btn"></a>';
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provider image click
|
|
||||||
*
|
|
||||||
* @return {Void}
|
|
||||||
*/
|
|
||||||
signin: function (box_id, onload) {
|
|
||||||
var provider = providers[box_id];
|
|
||||||
if (!provider) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.highlight(box_id);
|
|
||||||
this.setCookie(box_id);
|
|
||||||
this.provider_id = box_id;
|
|
||||||
this.provider_url = provider.url;
|
|
||||||
// prompt user for input?
|
|
||||||
if (provider.label) {
|
|
||||||
this.useInputBox(provider);
|
|
||||||
} else {
|
|
||||||
$('#openid_input_area').empty();
|
|
||||||
if (!onload) {
|
|
||||||
$('#openid_form').submit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sign-in button click
|
|
||||||
*
|
|
||||||
* @return {Boolean}
|
|
||||||
*/
|
|
||||||
submit: function () {
|
|
||||||
var url = openid.provider_url;
|
|
||||||
if (url) {
|
|
||||||
url = url.replace('{username}', $('#openid_username').val());
|
|
||||||
openid.setOpenIdUrl(url);
|
|
||||||
}
|
|
||||||
if (openid.demo) {
|
|
||||||
alert(openid.demo_text + "\r\n" + document.getElementById(openid.input_id).value);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (url && url.indexOf("javascript:") == 0) {
|
|
||||||
url = url.substr("javascript:".length);
|
|
||||||
eval(url);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return {Void}
|
|
||||||
*/
|
|
||||||
setOpenIdUrl: function (url) {
|
|
||||||
var hidden = document.getElementById(this.input_id);
|
|
||||||
if (hidden != null) {
|
|
||||||
hidden.value = url;
|
|
||||||
} else {
|
|
||||||
$('#openid_form').append('<input type="hidden" id="' + this.input_id + '" name="' + this.input_id + '" value="' + url + '"/>');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return {Void}
|
|
||||||
*/
|
|
||||||
highlight: function (box_id) {
|
|
||||||
// remove previous highlight.
|
|
||||||
var highlight = $('#openid_highlight');
|
|
||||||
if (highlight) {
|
|
||||||
highlight.replaceWith($('#openid_highlight a')[0]);
|
|
||||||
}
|
|
||||||
// add new highlight.
|
|
||||||
$('.' + box_id).wrap('<div id="openid_highlight"></div>');
|
|
||||||
},
|
|
||||||
|
|
||||||
setCookie: function (value) {
|
|
||||||
var date = new Date();
|
|
||||||
date.setTime(date.getTime() + (this.cookie_expires * 24 * 60 * 60 * 1000));
|
|
||||||
var expires = "; expires=" + date.toGMTString();
|
|
||||||
document.cookie = this.cookie_name + "=" + value + expires + "; path=" + this.cookie_path;
|
|
||||||
},
|
|
||||||
|
|
||||||
readCookie: function () {
|
|
||||||
var nameEQ = this.cookie_name + "=";
|
|
||||||
var ca = document.cookie.split(';');
|
|
||||||
for (var i = 0; i < ca.length; i++) {
|
|
||||||
var c = ca[i];
|
|
||||||
while (c.charAt(0) == ' ')
|
|
||||||
c = c.substring(1, c.length);
|
|
||||||
if (c.indexOf(nameEQ) == 0)
|
|
||||||
return c.substring(nameEQ.length, c.length);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return {Void}
|
|
||||||
*/
|
|
||||||
useInputBox: function (provider) {
|
|
||||||
var input_area = $('#openid_input_area');
|
|
||||||
var html = '';
|
|
||||||
var id = 'openid_username';
|
|
||||||
var value = '';
|
|
||||||
var label = provider.label;
|
|
||||||
var style = '';
|
|
||||||
if (label) {
|
|
||||||
html = '<p>' + label + '</p>';
|
|
||||||
}
|
|
||||||
if (provider.name == 'OpenID') {
|
|
||||||
id = this.input_id;
|
|
||||||
value = 'http://';
|
|
||||||
style = 'background: #FFF url(' + this.img_path + 'openid-inputicon.gif) no-repeat scroll 0 50%; padding-left:18px;';
|
|
||||||
}
|
|
||||||
html += '<input id="' + id + '" type="text" style="' + style + '" name="' + id + '" value="' + value + '" />'
|
|
||||||
+ '<input id="openid_submit" type="submit" value="' + this.signin_text + '"/>';
|
|
||||||
input_area.empty();
|
|
||||||
input_area.append(html);
|
|
||||||
$('#' + id).focus();
|
|
||||||
},
|
|
||||||
|
|
||||||
setDemoMode: function (demoMode) {
|
|
||||||
this.demo = demoMode;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
})(jQuery);
|
|
@ -1,18 +0,0 @@
|
|||||||
<%@page pageEncoding="UTF-8" %>
|
|
||||||
<%@include file="/jsp/init.jsp" %>
|
|
||||||
|
|
||||||
|
|
||||||
<div style="position:relative;">
|
|
||||||
<div id="prompt">
|
|
||||||
<!-- if IE without GCF, prompt goes here -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
CFInstall.check({
|
|
||||||
mode: "inline",
|
|
||||||
node:"prompt",
|
|
||||||
destination:"../c/maps/"
|
|
||||||
});
|
|
||||||
</script>
|
|
@ -1,11 +0,0 @@
|
|||||||
<%@page pageEncoding="UTF-8" %>
|
|
||||||
<%@include file="/jsp/init.jsp" %>
|
|
||||||
|
|
||||||
<h2><spring:message code="INSTALL_CFG"/></h2>
|
|
||||||
|
|
||||||
<p><spring:message code="INSTALL_CFG_REASON"/></p>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a href="c/GCFInstall"><spring:message code="INSTALL_CFG_CLICK_HERE"/></a>
|
|
||||||
</div>
|
|
||||||
|
|
@ -76,16 +76,9 @@
|
|||||||
<spring:message code="JOIN_NOW"/>
|
<spring:message code="JOIN_NOW"/>
|
||||||
</a>
|
</a>
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:if test="${requestScope['security.openid.enabled']}">
|
|
||||||
<p>
|
|
||||||
<spring:message code="LOGIN_USING_OPENID"/> <a href="/c/loginopenid"><b><spring:message
|
|
||||||
code="HERE"/></b></a>.
|
|
||||||
</p>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<c:if test="${isHsql== 'true'}">
|
<c:if test="${isHsql== 'true'}">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="alert alert-info col-md-offset12">
|
<div class="alert alert-info col-md-offset12">
|
||||||
|
@ -1,56 +0,0 @@
|
|||||||
<%@page pageEncoding="UTF-8" %>
|
|
||||||
<%@ include file="/jsp/init.jsp" %>
|
|
||||||
|
|
||||||
<%--@elvariable id="isHsql" type="boolean"--%>
|
|
||||||
<!-- Simple OpenID Selector -->
|
|
||||||
<link type="text/css" rel="stylesheet" href="css/openid.css"/>
|
|
||||||
<script type="text/javascript" language="javascript" src="js/jquery.js"></script>
|
|
||||||
<script type="text/javascript" language="javascript" src="js/openid-jquery.js"></script>
|
|
||||||
<script type="text/javascript" language="javascript" src="js/openid-en.js"></script>
|
|
||||||
<!-- /Simple OpenID Selector -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function () {
|
|
||||||
openid.init('openid_identifier');
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="js/jquery.js"></script>
|
|
||||||
<script type="text/javascript" language="javascript">
|
|
||||||
$(function () {
|
|
||||||
$('#loginForm').submit(function () {
|
|
||||||
$('.btn-primary').button("loading");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<div class="row" style="padding: 10px 0px">
|
|
||||||
<h1><spring:message code="OPENID_LOGIN"/></h1>
|
|
||||||
<spring:message code="LOGING_OPENID_DETAILS"/>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div id="login" class="fform col-md-8">
|
|
||||||
<form action="/c/j_spring_openid_security_check" method="get" id="openid_form">
|
|
||||||
<input type="hidden" name="action" value="verify" class="form-control"/>
|
|
||||||
<fieldset>
|
|
||||||
<div id="openid_choice">
|
|
||||||
</br>
|
|
||||||
<div id="openid_btns"></div>
|
|
||||||
</div>
|
|
||||||
<div id="openid_input_area">
|
|
||||||
<input id="openid_identifier" name="openid_identifier" type="text" value="http://" class="form-control"/>
|
|
||||||
<input id="openid_submit" type="submit" value="Sign-In" class="form-control" class="btn-primary btn"/>
|
|
||||||
</div>
|
|
||||||
<noscript>
|
|
||||||
<p>OpenID is service that allows you to log-on to many different websites using a single indentity.
|
|
||||||
Find out <a href="http://openid.net/what/">more about OpenID</a> and <a
|
|
||||||
href="http://openid.net/get/">how to get an OpenID enabled account</a>.</p>
|
|
||||||
</noscript>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
<!-- /Simple OpenID Selector -->
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4" style="background-color: #FFEFC6;padding: 10px">
|
|
||||||
<spring:message code="WHY_OPENID"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</br></br>
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user