forked from community/device-mgt-core
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
commit
504099a2c4
@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* WSO2 Inc. licenses this file to you 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.wso2.carbon.key.mgt.handler.valve;
|
|
||||||
|
|
||||||
public class APIFaultException extends Exception {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
private int errorCode;
|
|
||||||
|
|
||||||
public APIFaultException(int errorCode, String message) {
|
|
||||||
super(message);
|
|
||||||
this.errorCode = errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public APIFaultException(int errorCode, String message, Throwable cause) {
|
|
||||||
super(message, cause);
|
|
||||||
this.errorCode = errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getErrorCode() {
|
|
||||||
return errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,143 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* WSO2 Inc. licenses this file to you 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.wso2.carbon.key.mgt.handler.valve;
|
|
||||||
|
|
||||||
import org.apache.catalina.connector.Request;
|
|
||||||
import org.apache.catalina.connector.Response;
|
|
||||||
import org.apache.catalina.valves.ValveBase;
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.wso2.carbon.apimgt.api.APIManagementException;
|
|
||||||
import org.wso2.carbon.apimgt.core.authenticate.APITokenValidator;
|
|
||||||
import org.wso2.carbon.apimgt.core.gateway.APITokenAuthenticator;
|
|
||||||
import org.wso2.carbon.apimgt.impl.APIConstants;
|
|
||||||
import org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO;
|
|
||||||
import org.wso2.carbon.apimgt.impl.utils.APIUtil;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
|
|
||||||
public class OAuthTokenValidatorValve extends ValveBase {
|
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(OAuthTokenValidatorValve.class);
|
|
||||||
|
|
||||||
APITokenAuthenticator authenticator;
|
|
||||||
|
|
||||||
public OAuthTokenValidatorValve() {
|
|
||||||
authenticator = new APITokenAuthenticator();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void invoke(Request request, Response response) throws java.io.IOException, javax.servlet.ServletException {
|
|
||||||
String context = request.getContextPath();
|
|
||||||
if (context == null || context.equals("")) {
|
|
||||||
//Invoke the next valve in handler chain.
|
|
||||||
getNext().invoke(request, response);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean contextExist;
|
|
||||||
Boolean contextValueInCache = null;
|
|
||||||
if (APIUtil.getAPIContextCache().get(context) != null) {
|
|
||||||
contextValueInCache = Boolean.parseBoolean(APIUtil.getAPIContextCache().get(context).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (contextValueInCache != null) {
|
|
||||||
contextExist = contextValueInCache;
|
|
||||||
} else {
|
|
||||||
contextExist = ApiMgtDAO.isContextExist(context);
|
|
||||||
APIUtil.getAPIContextCache().put(context, contextExist);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!contextExist) {
|
|
||||||
getNext().invoke(request, response);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
handleWSDLGetRequest(request, response, context);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (ServletException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
String authHeader = request.getHeader(APIConstants.OperationParameter.AUTH_PARAM_NAME);
|
|
||||||
String accessToken = null;
|
|
||||||
|
|
||||||
/* Authenticate*/
|
|
||||||
try {
|
|
||||||
if (authHeader != null) {
|
|
||||||
accessToken = HandlerUtil.getAccessToken(authHeader);
|
|
||||||
} else {
|
|
||||||
// There can be some API published with None Auth Type
|
|
||||||
/*
|
|
||||||
* throw new
|
|
||||||
* APIFaultException(APIConstants.KeyValidationStatus
|
|
||||||
* .API_AUTH_INVALID_CREDENTIALS,
|
|
||||||
* "Invalid format for Authorization header. Expected 'Bearer <token>'"
|
|
||||||
* );
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
String apiVersion = HandlerUtil.getAPIVersion(request);
|
|
||||||
String domain = request.getHeader(APITokenValidator.getAPIManagerClientDomainHeader());
|
|
||||||
String authLevel = authenticator.getResourceAuthenticationScheme(context,
|
|
||||||
apiVersion,
|
|
||||||
request.getRequestURI(),
|
|
||||||
request.getMethod());
|
|
||||||
if (HandlerConstants.NO_MATCHING_AUTH_SCHEME.equals(authLevel)) {
|
|
||||||
HandlerUtil.handleNoMatchAuthSchemeCallForRestService(response,
|
|
||||||
request.getMethod(), request.getRequestURI(),
|
|
||||||
apiVersion, context);
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
HandlerUtil.doAuthenticate(context, apiVersion, accessToken, authLevel, domain);
|
|
||||||
}
|
|
||||||
} catch (APIManagementException e) {
|
|
||||||
//ignore
|
|
||||||
} catch (APIFaultException e) {
|
|
||||||
log.error("Error occurred while key validation", e);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
getNext().invoke(request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void handleWSDLGetRequest(Request request, Response response,
|
|
||||||
String context) throws IOException, ServletException {
|
|
||||||
if (request.getMethod().equals("GET")) {
|
|
||||||
// TODO:Need to get these paths from a config file.
|
|
||||||
if (request.getRequestURI().matches(context + "/[^/]*/services")) {
|
|
||||||
getNext().invoke(request, response);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Enumeration<String> params = request.getParameterNames();
|
|
||||||
String paramName;
|
|
||||||
while (params.hasMoreElements()) {
|
|
||||||
paramName = params.nextElement();
|
|
||||||
if (paramName.endsWith("wsdl") || paramName.endsWith("wadl")) {
|
|
||||||
getNext().invoke(request, response);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework;
|
||||||
|
|
||||||
|
public class AuthenticationException extends Exception {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -3151279311929070297L;
|
||||||
|
|
||||||
|
private String errorMessage;
|
||||||
|
private int errorCode;
|
||||||
|
|
||||||
|
public AuthenticationException(int errorCode, String message) {
|
||||||
|
super(message);
|
||||||
|
this.errorCode = errorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationException(int errorCode, String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
this.errorCode = errorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getErrorCode() {
|
||||||
|
return errorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationException(String msg, Exception nestedEx) {
|
||||||
|
super(msg, nestedEx);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
setErrorMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationException() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework;
|
||||||
|
|
||||||
|
import org.apache.catalina.connector.Request;
|
||||||
|
|
||||||
|
public class BasicAuthAuthenticator implements WebappAuthenticator {
|
||||||
|
|
||||||
|
private static final String BASIC_AUTH_AUTHENTICATOR = "BasicAuthAuthenticator";
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public BasicAuthAuthenticator(String username, String password) {
|
||||||
|
this.username = username;
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAuthenticated(Request request) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Status authenticate(Request request) {
|
||||||
|
return Status.CONTINUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAuthenticatorName() {
|
||||||
|
return BasicAuthAuthenticator.BASIC_AUTH_AUTHENTICATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
2
components/key-mgt/org.wso2.carbon.key.mgt.handler.valve/src/main/java/org/wso2/carbon/key/mgt/handler/valve/HandlerConstants.java → components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/HandlerConstants.java
2
components/key-mgt/org.wso2.carbon.key.mgt.handler.valve/src/main/java/org/wso2/carbon/key/mgt/handler/valve/HandlerConstants.java → components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/HandlerConstants.java
@ -0,0 +1,102 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework;
|
||||||
|
|
||||||
|
import org.apache.catalina.connector.Request;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.apimgt.api.APIManagementException;
|
||||||
|
import org.wso2.carbon.apimgt.core.authenticate.APITokenValidator;
|
||||||
|
import org.wso2.carbon.apimgt.core.gateway.APITokenAuthenticator;
|
||||||
|
import org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO;
|
||||||
|
import org.wso2.carbon.apimgt.impl.utils.APIUtil;
|
||||||
|
|
||||||
|
public class OAuthAuthenticator implements WebappAuthenticator {
|
||||||
|
|
||||||
|
private static final String OAUTH_AUTHENTICATOR = "OAuthAuthenticator";
|
||||||
|
private static APITokenAuthenticator authenticator = new APITokenAuthenticator();
|
||||||
|
|
||||||
|
private String bearerToken;
|
||||||
|
private static final Log log = LogFactory.getLog(OAuthAuthenticator.class);
|
||||||
|
|
||||||
|
public OAuthAuthenticator(String bearerToken) {
|
||||||
|
this.bearerToken = bearerToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAuthenticated(Request request) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Status authenticate(Request request) {
|
||||||
|
String context = request.getContextPath();
|
||||||
|
if (context == null || "".equals(context)) {
|
||||||
|
return Status.CONTINUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean contextExist;
|
||||||
|
Boolean contextValueInCache = null;
|
||||||
|
if (APIUtil.getAPIContextCache().get(context) != null) {
|
||||||
|
contextValueInCache = Boolean.parseBoolean(APIUtil.getAPIContextCache().get(context).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (contextValueInCache != null) {
|
||||||
|
contextExist = contextValueInCache;
|
||||||
|
} else {
|
||||||
|
contextExist = ApiMgtDAO.isContextExist(context);
|
||||||
|
APIUtil.getAPIContextCache().put(context, contextExist);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!contextExist) {
|
||||||
|
return Status.CONTINUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
String apiVersion = HandlerUtil.getAPIVersion(request);
|
||||||
|
String domain = request.getHeader(APITokenValidator.getAPIManagerClientDomainHeader());
|
||||||
|
String authLevel = authenticator.getResourceAuthenticationScheme(context,
|
||||||
|
apiVersion,
|
||||||
|
request.getRequestURI(),
|
||||||
|
request.getMethod());
|
||||||
|
if (HandlerConstants.NO_MATCHING_AUTH_SCHEME.equals(authLevel)) {
|
||||||
|
HandlerUtil.handleNoMatchAuthSchemeCallForRestService(null,
|
||||||
|
request.getMethod(), request.getRequestURI(),
|
||||||
|
apiVersion, context);
|
||||||
|
return Status.CONTINUE;
|
||||||
|
} else {
|
||||||
|
boolean isAuthenticated =
|
||||||
|
HandlerUtil.doAuthenticate(context, apiVersion, bearerToken, authLevel, domain);
|
||||||
|
return (isAuthenticated) ? Status.SUCCESS : Status.FAILURE;
|
||||||
|
}
|
||||||
|
} catch (APIManagementException e) {
|
||||||
|
//ignore
|
||||||
|
} catch (AuthenticationException e) {
|
||||||
|
log.error("Error occurred while key validation", e);
|
||||||
|
}
|
||||||
|
return Status.CONTINUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAuthenticatorName() {
|
||||||
|
return OAuthAuthenticator.OAUTH_AUTHENTICATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework;
|
||||||
|
|
||||||
|
import org.apache.catalina.connector.Request;
|
||||||
|
|
||||||
|
public interface WebappAuthenticator {
|
||||||
|
|
||||||
|
enum Status {
|
||||||
|
SUCCESS, FAILURE, CONTINUE
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isAuthenticated(Request request);
|
||||||
|
|
||||||
|
Status authenticate(Request request);
|
||||||
|
|
||||||
|
String getAuthenticatorName();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework;
|
||||||
|
|
||||||
|
import org.apache.catalina.connector.Request;
|
||||||
|
import org.apache.catalina.util.Base64;
|
||||||
|
import org.apache.tomcat.util.buf.ByteChunk;
|
||||||
|
import org.apache.tomcat.util.buf.CharChunk;
|
||||||
|
import org.apache.tomcat.util.buf.MessageBytes;
|
||||||
|
|
||||||
|
public class WebappAuthenticatorFactory {
|
||||||
|
|
||||||
|
public static WebappAuthenticator getAuthenticator(Request request) {
|
||||||
|
MessageBytes authorization = request.getCoyoteRequest().getMimeHeaders().getValue("authorization");
|
||||||
|
if (authorization != null) {
|
||||||
|
authorization.toBytes();
|
||||||
|
ByteChunk authBC = authorization.getByteChunk();
|
||||||
|
if (authBC.startsWithIgnoreCase("basic ", 0)) {
|
||||||
|
authBC.setOffset(authBC.getOffset() + 6);
|
||||||
|
|
||||||
|
CharChunk authCC = authorization.getCharChunk();
|
||||||
|
Base64.decode(authBC, authCC);
|
||||||
|
|
||||||
|
String username;
|
||||||
|
String password = null;
|
||||||
|
|
||||||
|
int colon = authCC.indexOf(':');
|
||||||
|
if (colon < 0) {
|
||||||
|
username = authCC.toString();
|
||||||
|
} else {
|
||||||
|
char[] buf = authCC.getBuffer();
|
||||||
|
username = new String(buf, 0, colon);
|
||||||
|
password = new String(buf, colon + 1, authCC.getEnd() - colon - 1);
|
||||||
|
}
|
||||||
|
authBC.setOffset(authBC.getOffset() - 6);
|
||||||
|
return new BasicAuthAuthenticator(username, password);
|
||||||
|
} else if (authBC.startsWithIgnoreCase("bearer ", 0)) {
|
||||||
|
authBC.setOffset(authBC.getOffset() + 7);
|
||||||
|
|
||||||
|
CharChunk authCC = authorization.getCharChunk();
|
||||||
|
char[] buf = authCC.getBuffer();
|
||||||
|
String bearer = new String(buf, 0, authCC.getEnd() - 1);
|
||||||
|
authBC.setOffset(authBC.getOffset() - 7);
|
||||||
|
return new OAuthAuthenticator(bearer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("Failed to determine an appropriate authenticator to be used, based " +
|
||||||
|
"on the incoming request");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework;
|
||||||
|
|
||||||
|
import org.apache.axis2.context.MessageContext;
|
||||||
|
import org.apache.catalina.connector.Request;
|
||||||
|
import org.apache.catalina.connector.Response;
|
||||||
|
import org.apache.catalina.valves.ValveBase;
|
||||||
|
import org.wso2.carbon.core.services.authentication.CarbonServerAuthenticator;
|
||||||
|
import org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve;
|
||||||
|
import org.wso2.carbon.tomcat.ext.valves.CompositeValve;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class WebappAuthenticatorFrameworkValve extends CarbonTomcatValve {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invoke(Request request, Response response, CompositeValve compositeValve) {
|
||||||
|
WebappAuthenticator authenticator = WebappAuthenticatorFactory.getAuthenticator(request);
|
||||||
|
WebappAuthenticator.Status status = authenticator.authenticate(request);
|
||||||
|
switch (status) {
|
||||||
|
case SUCCESS:
|
||||||
|
case CONTINUE:
|
||||||
|
getNext().invoke(request, response, compositeValve);
|
||||||
|
case FAILURE:
|
||||||
|
//do something
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you 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.wso2.carbon.webapp.authenticator.framework.internal;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.osgi.framework.BundleActivator;
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
import org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve;
|
||||||
|
import org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer;
|
||||||
|
import org.wso2.carbon.webapp.authenticator.framework.WebappAuthenticatorFrameworkValve;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class WebappAuthenticatorFrameworkBundleActivator implements BundleActivator {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(WebappAuthenticatorFrameworkBundleActivator.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void start(BundleContext bundleContext) throws Exception {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Starting Web Application Authenticator Framework Bundle");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
List<CarbonTomcatValve> valves = new ArrayList<CarbonTomcatValve>();
|
||||||
|
valves.add(new WebappAuthenticatorFrameworkValve());
|
||||||
|
TomcatValveContainer.addValves(valves);
|
||||||
|
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Web Application Authenticator Framework Bundle has been started successfully");
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Error occurred while initializing the bundle");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stop(BundleContext bundleContext) throws Exception {
|
||||||
|
//do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,106 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>device-mgt-feature</artifactId>
|
||||||
|
<version>0.9.2-SNAPSHOT</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>org.wso2.carbon.webapp.authenticator.framework.server.feature</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<version>0.9.2-SNAPSHOT</version>
|
||||||
|
<name>WSO2 Carbon - Device Management Server Feature</name>
|
||||||
|
<url>http://wso2.org</url>
|
||||||
|
<description>This feature contains the core bundles required for Back-end Device Management functionality
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<version>2.6</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-resources</id>
|
||||||
|
<phase>generate-resources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>src/main/resources</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>build.properties</include>
|
||||||
|
<include>p2.inf</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.wso2.maven</groupId>
|
||||||
|
<artifactId>carbon-p2-plugin</artifactId>
|
||||||
|
<version>${carbon.p2.plugin.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>p2-feature-generation</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>p2-feature-gen</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<id>org.wso2.carbon.webapp.authenticator.framework.server</id>
|
||||||
|
<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
|
||||||
|
<adviceFile>
|
||||||
|
<properties>
|
||||||
|
<propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
|
||||||
|
<propertyDef>org.eclipse.equinox.p2.type.group:false</propertyDef>
|
||||||
|
</properties>
|
||||||
|
</adviceFile>
|
||||||
|
<bundles>
|
||||||
|
<bundleDef>org.wso2.carbon.devicemgt:org.wso2.carbon.webapp.authenticator.framework:${carbon.device.mgt.version}
|
||||||
|
</bundleDef>
|
||||||
|
</bundles>
|
||||||
|
<importFeatures>
|
||||||
|
<importFeatureDef>org.wso2.carbon.core.server:${carbon.kernel.version}</importFeatureDef>
|
||||||
|
<importFeatureDef>org.wso2.carbon.apimgt.core:${carbon.api.mgt.version}</importFeatureDef>
|
||||||
|
</importFeatures>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
@ -0,0 +1 @@
|
|||||||
|
custom = true
|
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<DeviceMgtConfiguration>
|
||||||
|
<ManagementRepository>
|
||||||
|
<DataSourceConfiguration>
|
||||||
|
<JndiLookupDefinition>
|
||||||
|
<Name>jdbc/DM_DS</Name>
|
||||||
|
</JndiLookupDefinition>
|
||||||
|
</DataSourceConfiguration>
|
||||||
|
<EmailClientConfiguration>
|
||||||
|
<minimumThread>8</minimumThread>
|
||||||
|
<maximumThread>100</maximumThread>
|
||||||
|
<keepAliveTime>20</keepAliveTime>
|
||||||
|
<ThreadQueueCapacity>1000</ThreadQueueCapacity>
|
||||||
|
</EmailClientConfiguration>
|
||||||
|
</ManagementRepository>
|
||||||
|
</DeviceMgtConfiguration>
|
||||||
|
|
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<LicenseConfig>
|
||||||
|
<Licenses>
|
||||||
|
<License>
|
||||||
|
<Provider>wso2</Provider>
|
||||||
|
<Name>android</Name>
|
||||||
|
<Version>1.0.0</Version>
|
||||||
|
<Language>1.0.0</Language>
|
||||||
|
<ValidFrom>01-01-2014</ValidFrom>
|
||||||
|
<ValidTo>31-12-2035</ValidTo>
|
||||||
|
<Text><![CDATA[Test License]]></Text>
|
||||||
|
</License>
|
||||||
|
<License>
|
||||||
|
<Provider>wso2</Provider>
|
||||||
|
<Name>ios</Name>
|
||||||
|
<Version>1.0.0</Version>
|
||||||
|
<Language>1.0.0</Language>
|
||||||
|
<ValidFrom>01-01-2014</ValidFrom>
|
||||||
|
<ValidTo>31-12-2035</ValidTo>
|
||||||
|
<Text><![CDATA[IOS License]]></Text>
|
||||||
|
</License>
|
||||||
|
<License>
|
||||||
|
<Provider>wso2</Provider>
|
||||||
|
<Name>windows</Name>
|
||||||
|
<Version>1.0.0</Version>
|
||||||
|
<Language>1.0.0</Language>
|
||||||
|
<ValidFrom>01-01-2014</ValidFrom>
|
||||||
|
<ValidTo>31-12-2035</ValidTo>
|
||||||
|
<Text><![CDATA[Windows License]]></Text>
|
||||||
|
</License>
|
||||||
|
</Licenses>
|
||||||
|
</LicenseConfig>
|
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Notifications>
|
||||||
|
<EnrolmentNotifications>
|
||||||
|
<Header>Dear {title} {user-name},</Header>
|
||||||
|
<Body>You have been registered to the WSO2 MDM. Below is the link to enroll.</Body>
|
||||||
|
<Url>{downloadUrl}</Url>
|
||||||
|
<Footer>
|
||||||
|
Best Regards,
|
||||||
|
WSO2 Carbon Team
|
||||||
|
http://www.wso2.com
|
||||||
|
</Footer>
|
||||||
|
<Subject>Enrol your device with WSO2 MDM</Subject>
|
||||||
|
</EnrolmentNotifications>
|
||||||
|
</Notifications>
|
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you 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.
|
||||||
|
-->
|
||||||
|
<APIPublisherConfig>
|
||||||
|
<APIs>
|
||||||
|
<API>
|
||||||
|
<Name>appmanager</Name>
|
||||||
|
<Owner>admin</Owner>
|
||||||
|
<Context>enrollment</Context>
|
||||||
|
<Version>1.0.0</Version>
|
||||||
|
<Endpoint>http://localhost:9763/</Endpoint>
|
||||||
|
<Transports>http,https</Transports>
|
||||||
|
</API>
|
||||||
|
</APIs>
|
||||||
|
</APIPublisherConfig>
|
@ -0,0 +1,60 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE (
|
||||||
|
ID INT auto_increment NOT NULL,
|
||||||
|
NAME VARCHAR(300) NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_DEVICE (
|
||||||
|
ID INTEGER auto_increment NOT NULL,
|
||||||
|
DESCRIPTION TEXT NULL DEFAULT NULL,
|
||||||
|
NAME VARCHAR(100) NULL DEFAULT NULL,
|
||||||
|
DATE_OF_ENROLLMENT BIGINT NULL DEFAULT NULL,
|
||||||
|
DATE_OF_LAST_UPDATE BIGINT NULL DEFAULT NULL,
|
||||||
|
OWNERSHIP VARCHAR(45) NULL DEFAULT NULL,
|
||||||
|
STATUS VARCHAR(15) NULL DEFAULT NULL,
|
||||||
|
DEVICE_TYPE_ID INT(11) NULL DEFAULT NULL,
|
||||||
|
DEVICE_IDENTIFICATION VARCHAR(300) NULL DEFAULT NULL,
|
||||||
|
OWNER VARCHAR(45) NULL DEFAULT NULL,
|
||||||
|
TENANT_ID INTEGER DEFAULT 0,
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID )
|
||||||
|
REFERENCES DM_DEVICE_TYPE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_OPERATION (
|
||||||
|
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||||
|
TYPE VARCHAR(50) NOT NULL,
|
||||||
|
CREATED_TIMESTAMP TIMESTAMP NOT NULL,
|
||||||
|
RECEIVED_TIMESTAMP TIMESTAMP NULL,
|
||||||
|
STATUS VARCHAR(50) NULL,
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_CONFIG_OPERATION (
|
||||||
|
OPERATION_ID INTEGER NOT NULL,
|
||||||
|
PRIMARY KEY (OPERATION_ID),
|
||||||
|
CONSTRAINT fk_dm_operation_config FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
|
DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_COMMAND_OPERATION (
|
||||||
|
OPERATION_ID INTEGER NOT NULL,
|
||||||
|
ENABLED INTEGER NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY (OPERATION_ID),
|
||||||
|
CONSTRAINT fk_dm_operation_command FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
|
DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_DEVICE_OPERATION_MAPPING (
|
||||||
|
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||||
|
DEVICE_ID INTEGER NOT NULL,
|
||||||
|
OPERATION_ID INTEGER NOT NULL,
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
CONSTRAINT fk_dm_device_operation_mapping_device FOREIGN KEY (DEVICE_ID) REFERENCES
|
||||||
|
DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||||
|
CONSTRAINT fk_dm_device_operation_mapping_operation FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
|
DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||||
|
);
|
||||||
|
|
||||||
|
-- TO:DO - Remove this INSERT sql statement.
|
||||||
|
Insert into DM_DEVICE_TYPE (ID,NAME) VALUES (1, 'android');
|
@ -0,0 +1,35 @@
|
|||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `DM_DEVICE_TYPE`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `DM_DEVICE_TYPE` (
|
||||||
|
`ID` INT(11) NOT NULL ,
|
||||||
|
`NAME` VARCHAR(300) NULL DEFAULT NULL ,
|
||||||
|
PRIMARY KEY (`ID`) )
|
||||||
|
ENGINE = InnoDB
|
||||||
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `DM_DEVICE`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `DM_DEVICE` (
|
||||||
|
`ID` VARCHAR(20) NOT NULL ,
|
||||||
|
`DESCRIPTION` TEXT NULL DEFAULT NULL ,
|
||||||
|
`NAME` VARCHAR(100) NULL DEFAULT NULL ,
|
||||||
|
`DATE_OF_ENROLLMENT` DATETIME NULL DEFAULT NULL ,
|
||||||
|
`DATE_OF_LAST_UPDATE` DATETIME NULL DEFAULT NULL ,
|
||||||
|
`OWNERSHIP` VARCHAR(45) NULL DEFAULT NULL ,
|
||||||
|
`STATUS` VARCHAR(15) NULL DEFAULT NULL ,
|
||||||
|
`DEVICE_TYPE_ID` INT(11) NULL DEFAULT NULL ,
|
||||||
|
`DEVICE_IDENTIFICATION` VARCHAR(300) NULL DEFAULT NULL ,
|
||||||
|
`OWNER` VARCHAR(45) NULL DEFAULT NULL ,
|
||||||
|
TENANT_ID INTEGER DEFAULT 0,
|
||||||
|
PRIMARY KEY (`ID`) ,
|
||||||
|
INDEX `fk_DM_DEVICE_DM_DEVICE_TYPE2_idx` (`DEVICE_TYPE_ID` ASC) ,
|
||||||
|
CONSTRAINT `fk_DM_DEVICE_DM_DEVICE_TYPE2`
|
||||||
|
FOREIGN KEY (`DEVICE_TYPE_ID` )
|
||||||
|
REFERENCES `DM_DEVICE_TYPE` (`ID` )
|
||||||
|
ON DELETE NO ACTION
|
||||||
|
ON UPDATE NO ACTION)
|
||||||
|
ENGINE = InnoDB
|
||||||
|
DEFAULT CHARACTER SET = latin1;
|
@ -0,0 +1,7 @@
|
|||||||
|
instructions.configure = \
|
||||||
|
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/cdm-config.xml,target:${installFolder}/../../conf/cdm-config.xml,overwrite:true);\
|
||||||
|
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/notification-messages.xml,target:${installFolder}/../../conf/notification-messages.xml,overwrite:true);\
|
||||||
|
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/license-config.xml,target:${installFolder}/../../conf/etc/license-config.xml,overwrite:true);\
|
||||||
|
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/user-api-publisher-config.xml,target:${installFolder}/../../conf/etc/user-api-publisher-config.xml,overwrite:true);\
|
||||||
|
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/dbscripts/cdm,target:${installFolder}/../../../dbscripts/cdm,overwrite:true);\
|
||||||
|
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/rxts/license.rxt,target:${installFolder}/../../../repository/resources/rxts/license.rxt,overwrite:true);\
|
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<artifactType type="application/vnd.wso2-license+xml" shortName="license" singularLabel="License" pluralLabel="Licenses"
|
||||||
|
hasNamespace="false" iconSet="10">
|
||||||
|
<storagePath>/device-mgt/license/@{overview_name}/@{overview_language}/@{overview_version}</storagePath>
|
||||||
|
<nameAttribute>overview_name</nameAttribute>
|
||||||
|
<ui>
|
||||||
|
<list>
|
||||||
|
<column name="Device Type">
|
||||||
|
<data type="path" value="overview_provider" href="@{storagePath}"/>
|
||||||
|
</column>
|
||||||
|
<column name="Name">
|
||||||
|
<data type="path" value="overview_name" href="@{storagePath}"/>
|
||||||
|
</column>
|
||||||
|
<column name="Language">
|
||||||
|
<data type="path" value="overview_language" href="@{storagePath}"/>
|
||||||
|
</column>
|
||||||
|
<column name="Version">
|
||||||
|
<data type="path" value="overview_version" href="@{storagePath}"/>
|
||||||
|
</column>
|
||||||
|
</list>
|
||||||
|
</ui>
|
||||||
|
<content>
|
||||||
|
<table name="Overview">
|
||||||
|
<field type="text" required="true">
|
||||||
|
<name>Provider</name>
|
||||||
|
</field>
|
||||||
|
<field type="text" required="true">
|
||||||
|
<name>Name</name>
|
||||||
|
</field>
|
||||||
|
<field type="text" required="true">
|
||||||
|
<name>Language</name>
|
||||||
|
</field>
|
||||||
|
<field type="text" required="true">
|
||||||
|
<name>Version</name>
|
||||||
|
</field>
|
||||||
|
<field type="text">
|
||||||
|
<name>Validity From</name>
|
||||||
|
</field>
|
||||||
|
<field type="text">
|
||||||
|
<name>Validity To</name>
|
||||||
|
</field>
|
||||||
|
<field type="text-area">
|
||||||
|
<name>License</name>
|
||||||
|
</field>
|
||||||
|
</table>
|
||||||
|
</content>
|
||||||
|
</artifactType>
|
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>carbon-devicemgt</artifactId>
|
||||||
|
<version>0.9.2-SNAPSHOT</version>
|
||||||
|
<relativePath>../../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>webapp-authenticator-framework-feature</artifactId>
|
||||||
|
<version>0.9.2-SNAPSHOT</version>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<name>WSO2 Carbon - Webapp Authenticator Framework Feature</name>
|
||||||
|
<url>http://wso2.org</url>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>org.wso2.carbon.webapp.authenticator.framework.server.feature</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
</project>
|
Loading…
Reference in new issue