Merge pull request #92 from charithag/master

Fix issues
merge-requests/1/head
Charitha Goonetilleke 9 years ago
commit 898634e01e

@ -1,8 +1,7 @@
{ {
"deviceType": { "deviceType": {
"label": "Smart Meeter", "label": "Smart Meeter",
"category": "virtual" "category": "iot"
}, },
"analyticStreams": [ "analyticStreams": [
{ {

@ -224,10 +224,5 @@
<artifactId>org.wso2.carbon.user.core</artifactId> <artifactId>org.wso2.carbon.user.core</artifactId>
<version>4.4.3</version> <version>4.4.3</version>
</dependency> </dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.user.core</artifactId>
<version>4.4.3</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

@ -58,16 +58,17 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.Context; import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.util.*; import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@API(name = "doormanager", version = "1.0.0", context = "/doormanager") @API(name = "doormanager", version = "1.0.0", context = "/doormanager")
@DeviceType(value = "doormanager") @DeviceType(value = "doormanager")
public class DoorManagerControllerService { public class DoorManagerControllerService {
private static final DoorManagerDAO DOOR_MANAGER_DAO = new DoorManagerDAO(); private static final DoorManagerDAO DOOR_MANAGER_DAO = new DoorManagerDAO();
@Context //injected response proxy supporting multiple thread
private static Log log = LogFactory.getLog(DoorManagerControllerService.class); private static Log log = LogFactory.getLog(DoorManagerControllerService.class);
private HttpServletResponse response; private HttpServletResponse response;
@ -76,6 +77,8 @@ public class DoorManagerControllerService {
private PrivilegedCarbonContext ctx; private PrivilegedCarbonContext ctx;
@Context //injected response proxy supporting multiple thread
private UserStoreManager getUserStoreManager() throws UserStoreException { private UserStoreManager getUserStoreManager() throws UserStoreException {
String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain(); String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
PrivilegedCarbonContext.startTenantFlow(); PrivilegedCarbonContext.startTenantFlow();
@ -144,36 +147,36 @@ public class DoorManagerControllerService {
@FormParam("policy") String policy, @FormParam("policy") String policy,
@FormParam("cardNumber") String cardNumber, @FormParam("cardNumber") String cardNumber,
@FormParam("userName") String userName, @FormParam("userName") String userName,
@Context HttpServletResponse response){ @Context HttpServletResponse response) {
try { try {
if (userName != null && cardNumber != null && deviceId != null) { if (userName != null && cardNumber != null && deviceId != null) {
try { try {
UserStoreManager userStoreManager = this.getUserStoreManager(); UserStoreManager userStoreManager = this.getUserStoreManager();
if (userStoreManager.isExistingUser(userName)) { if (userStoreManager.isExistingUser(userName)) {
TokenClient accessTokenClient = new TokenClient(DoorManagerConstants.DEVICE_TYPE); TokenClient accessTokenClient = new TokenClient(DoorManagerConstants.DEVICE_TYPE);
AccessTokenInfo accessTokenInfo = accessTokenClient.getAccessToken(deviceId, userName); AccessTokenInfo accessTokenInfo = accessTokenClient.getAccessToken(deviceId, userName);
String accessToken = accessTokenInfo.getAccess_token(); String accessToken = accessTokenInfo.getAccess_token();
if (accessToken == null) { if (accessToken == null) {
response.setStatus(Response.Status.UNAUTHORIZED.getStatusCode()); response.setStatus(Response.Status.UNAUTHORIZED.getStatusCode());
return; return;
}
Map<String, String> claims = new HashMap<>();
claims.put("http://wso2.org/claims/lock/accesstoken", accessToken);
claims.put("http://wso2.org/claims/lock/refreshtoken", accessTokenInfo.getRefresh_token());
claims.put("http://wso2.org/claims/lock/cardnumber", cardNumber);
userStoreManager.setUserClaimValues(userName, claims, null);
//TODO: Add content to dto
} else {
response.setStatus(Response.Status.NOT_FOUND.getStatusCode());
} }
} catch (UserStoreException e) { Map<String, String> claims = new HashMap<>();
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); claims.put("http://wso2.org/claims/lock/accesstoken", accessToken);
log.error(e); claims.put("http://wso2.org/claims/lock/refreshtoken", accessTokenInfo.getRefresh_token());
claims.put("http://wso2.org/claims/lock/cardnumber", cardNumber);
userStoreManager.setUserClaimValues(userName, claims, null);
//TODO: Add content to dto
response.setStatus(Response.Status.OK.getStatusCode());
} else {
response.setStatus(Response.Status.NOT_FOUND.getStatusCode());
} }
} catch (UserStoreException e) {
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
log.error(e);
} }
else { } else {
response.setStatus(Response.Status.BAD_REQUEST.getStatusCode()); response.setStatus(Response.Status.BAD_REQUEST.getStatusCode());
} }
} catch (AccessTokenException e) { } catch (AccessTokenException e) {
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
@ -326,14 +329,14 @@ public class DoorManagerControllerService {
@Context HttpServletResponse response) { @Context HttpServletResponse response) {
try { try {
int lockerCurrentState; int lockerCurrentState;
if(state.toUpperCase().equals("LOCK")){ if (state.toUpperCase().equals("LOCK")) {
lockerCurrentState = 0; lockerCurrentState = 0;
}else{ } else {
lockerCurrentState = 1; lockerCurrentState = 1;
} }
SensorDataManager.getInstance().setSensorRecord(deviceId, "door_locker_state", SensorDataManager.getInstance().setSensorRecord(deviceId, "door_locker_state",
String.valueOf(lockerCurrentState), Calendar.getInstance().getTimeInMillis()); String.valueOf(lockerCurrentState), Calendar.getInstance().getTimeInMillis());
doorManagerMQTTConnector.sendCommandViaMQTT(owner, deviceId,"DoorManager:", state.toUpperCase()); doorManagerMQTTConnector.sendCommandViaMQTT(owner, deviceId, "DoorManager:", state.toUpperCase());
response.setStatus(Response.Status.OK.getStatusCode()); response.setStatus(Response.Status.OK.getStatusCode());
} catch (DeviceManagementException e) { } catch (DeviceManagementException e) {
log.error(e); log.error(e);

@ -57,7 +57,6 @@ public class DoorManagerDAOImpl {
stmt = conn.prepareStatement(selectDBQuery); stmt = conn.prepareStatement(selectDBQuery);
stmt.setString(1, deviceId); stmt.setString(1, deviceId);
resultSet = stmt.executeQuery(); resultSet = stmt.executeQuery();
if (resultSet.next()) { if (resultSet.next()) {
automaticDoorLockerDevice = new Device(); automaticDoorLockerDevice = new Device();
automaticDoorLockerDevice.setName(resultSet.getString( automaticDoorLockerDevice.setName(resultSet.getString(

Loading…
Cancel
Save