diff --git a/jams-react-client/src/auth.js b/jams-react-client/src/auth.js index ac138a04d9b197a3d2b279e4532394e187d30ab1..eae75c7b7b4e97929ba8508d4dd26c40c739fed4 100644 --- a/jams-react-client/src/auth.js +++ b/jams-react-client/src/auth.js @@ -130,14 +130,15 @@ class Auth { } cb() }).catch((error) => { - console.log("Error during API request on checkServerIsInstalled: " + error); + if (error.response.status === 401) { + this.authenticated = false; + } }); } checkLastKnownStep(cb) { if(this.installed){ this.authenticated = true - console.log("Auth: Server is already installed") cb() }else{ axios(configApiCall(api_path_get_install_lastKnownStep, 'GET', null, null)).then((response) => { @@ -147,10 +148,6 @@ class Auth { }).catch((error) => { if(error.response.status === 401){ this.authenticated = false; - console.log("Error during API request on checkLastKnowStep not authenticated!"); - } - else{ - console.log("Error during API request on checkLastKnowStep: " + error); } cb() }) @@ -169,7 +166,6 @@ class Auth { this.authenticated = true cb() }).catch((error) => { - console.log("Error during API request on checkLastKnownStep: " + error); cb() }) } @@ -188,7 +184,6 @@ class Auth { this.authenticated = true cb() }).catch((error) => { - console.log("Error during API request on checkLastKnownStep: " + error); cb() }) } diff --git a/jams-react-client/src/components/Devices/Devices.js b/jams-react-client/src/components/Devices/Devices.js index 411af2151ebe746a2383fe55c7ee3fb81aa9e7a9..9f05363399317e79b188c669897d49e91cc1a654 100755 --- a/jams-react-client/src/components/Devices/Devices.js +++ b/jams-react-client/src/components/Devices/Devices.js @@ -1,4 +1,6 @@ import React, {useEffect} from "react"; +import { useHistory } from "react-router-dom"; + import classnames from "classnames"; import {Formik, Field} from "formik"; // @material-ui/core components @@ -38,31 +40,48 @@ const useStyles = makeStyles(styles); export default function Devices(props) { const classes = useStyles(); + const history = useHistory(); + const [devices, setDevices] = React.useState([]) const [selectedDevice, setSelectedDevice]= React.useState({}); const [displayName, setDisplayName] = React.useState("") const [openEdit, setOpenEdit] = React.useState(false); const [openRevoke, setOpenRevoke] = React.useState(false); const userData = { - "username":props.username + "username": props.username }; useEffect(() => { auth.checkDirectoryType(() => { if(auth.hasAdminScope()){ axios(configApiCall(api_path_get_admin_devices, 'GET', userData, null)).then((response)=>{ - var resultSet = JSON.parse(response.data.replace(/\s+/g, ' ').trim()); - setDevices(resultSet) + if(response.data.length == 0) { + setDevices([]); + }else{ + var resultSet = JSON.parse(response.data.replace(/\s+/g, ' ').trim()); + setDevices(resultSet) + } }).catch((error) =>{ console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }); } else{ axios(configApiCall(api_path_get_auth_devices, 'GET', null, null)).then((response)=>{ - var resultSet = JSON.parse(response.data.replace(/\s+/g, ' ').trim()); - setDevices(resultSet) + if(response.data.length == 0) { + setDevices([]); + }else{ + var resultSet = JSON.parse(response.data.replace(/\s+/g, ' ').trim()); + setDevices(resultSet) + } }).catch((error) =>{ - console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }); } }) diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js index d5fb210c9fff1aca4a6f24ce069fac92d3800ee5..3eabab55d1a13a2624711eb3d0583bdd70cb4877 100644 --- a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js +++ b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js @@ -174,7 +174,6 @@ export default function EditBlueprintPermissions(props) { setUsers(profiles); }) .catch((error) => { - console.log(error); setUsers([]); if (error.response.status === 401) { auth.authenticated = false; diff --git a/jams-react-client/src/views/Blueprints/Blueprints.js b/jams-react-client/src/views/Blueprints/Blueprints.js index 2bdddb4fadae7b5f3baeea8e5edf4a67ced86935..dc9ffcd0db56babcbdb5b914a9710a841807e54d 100644 --- a/jams-react-client/src/views/Blueprints/Blueprints.js +++ b/jams-react-client/src/views/Blueprints/Blueprints.js @@ -127,7 +127,6 @@ export default function Blueprints() { }) .catch((error) => { setBlueprints([]); - console.log(error); if (error.response.status === 401) { auth.authenticated = false; history.push("/"); @@ -159,7 +158,6 @@ export default function Blueprints() { setBlueprintNameExits(true); }) .catch((error) => { - console.log(error); setDisableCreate(false); setBlueprintNameExits(false); }); diff --git a/jams-react-client/src/views/Contacts/Contacts.js b/jams-react-client/src/views/Contacts/Contacts.js index 8124eaa7408958be004d0405be2a24b4777c6133..bf2ee4e8850e0378b93de74c22ecf1508d82ad57 100644 --- a/jams-react-client/src/views/Contacts/Contacts.js +++ b/jams-react-client/src/views/Contacts/Contacts.js @@ -117,11 +117,10 @@ export default function Users(props) { setUsers(profiles); }) .catch((error) => { - console.log(error); setUsers([]); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); }else if(error.response.status === 403){ setAllowedToAdd(false); } @@ -174,7 +173,6 @@ export default function Users(props) { setLoading(false); }) .catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; history.push("/"); @@ -217,10 +215,9 @@ export default function Users(props) { setLoading(false); }) .catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } }); } diff --git a/jams-react-client/src/views/Groups/EditGroup.js b/jams-react-client/src/views/Groups/EditGroup.js index 5953ae3ad395ccd5c610d79ab260ea7f689d36a5..a957259a0f4eaf24ab622949b2de07f0bcbe3b00 100644 --- a/jams-react-client/src/views/Groups/EditGroup.js +++ b/jams-react-client/src/views/Groups/EditGroup.js @@ -158,10 +158,9 @@ export default function EditGroup(props) { }); }) .catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } if (error.response.status === 500) { setBlueprints([]); @@ -185,8 +184,10 @@ export default function EditGroup(props) { if (error.response.status === 404) { setGroupMembers([]); } - else - console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }) @@ -255,11 +256,10 @@ export default function EditGroup(props) { setUsers(profiles); }) .catch((error) => { - console.log(error); setUsers([]); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } }); }; @@ -336,7 +336,6 @@ export default function EditGroup(props) { }); }) .catch((error) => { - console.log(error); setGroupNameExits(false); }); }; diff --git a/jams-react-client/src/views/Groups/Groups.js b/jams-react-client/src/views/Groups/Groups.js index aba42d2c3c053ca62063d77febfb3356cc37274c..161f44bab8af90e6014096d250656db4e611ecd8 100644 --- a/jams-react-client/src/views/Groups/Groups.js +++ b/jams-react-client/src/views/Groups/Groups.js @@ -165,10 +165,9 @@ export default function Groups() { setSelectedBlueprint(getBlueprintsOptions()[0]); }) .catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } if (error.response.status === 500) { setBlueprints([]); @@ -212,10 +211,9 @@ export default function Groups() { setLoading(false); }) .catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } if (error.response.status === 404){ getBlueprints(); @@ -249,7 +247,6 @@ export default function Groups() { }); }) .catch((error) => { - console.log(error); setDisableCreate(false); setGroupNameExits(false); }); diff --git a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js b/jams-react-client/src/views/UserProfile/DisplayUserProfile.js index 282ff263fc38bce73ff1c10ea3fb89ce639196a3..e50cf22c93e11a38db656db83b3129c749b733b6 100644 --- a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js +++ b/jams-react-client/src/views/UserProfile/DisplayUserProfile.js @@ -243,7 +243,6 @@ export default function DisplayUserProfile(props) { history.push("/"); }else { setGroups([]); - console.log(error.response); } } else { setGroups([]); @@ -344,10 +343,9 @@ export default function DisplayUserProfile(props) { }); setGroupMemberships(userGroupsData); }).catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } if (error.response.status === 404) { setGroupMemberships([]); @@ -357,11 +355,17 @@ export default function DisplayUserProfile(props) { setLoading(false); }) .catch((error) => { - console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }); }) .catch((error) => { - console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }); } else { axios( @@ -400,10 +404,9 @@ export default function DisplayUserProfile(props) { }); setGroupMemberships(userGroupsData); }).catch((error) => { - console.log(error); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } if (error.response.status === 404) { setGroupMemberships([]); @@ -412,11 +415,17 @@ export default function DisplayUserProfile(props) { setLoading(false); }) .catch((error) => { - console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }); }) .catch((error) => { - console.log(error); + if (error.response.status === 401) { + auth.authenticated = false; + history.push("/signin"); + } }); } }); diff --git a/jams-react-client/src/views/Users/Users.js b/jams-react-client/src/views/Users/Users.js index ee96a21f4409daa2bbb8f75d325ee81424a260c4..9a92182effabd35a735189a2c10d5f5ac74d17dc 100644 --- a/jams-react-client/src/views/Users/Users.js +++ b/jams-react-client/src/views/Users/Users.js @@ -119,7 +119,7 @@ export default function Users(props) { setLoading(false); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } }); return () => { @@ -155,7 +155,7 @@ export default function Users(props) { setLoading(false); if (error.response.status === 401) { auth.authenticated = false; - history.push("/"); + history.push("/signin"); } }); }; diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java index 93c156dcbacbda2cb1f5bf9ba42d8759e0ab12e4..4daadce5f3a8bc01b8e026b0bc0e80db498fa32a 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java @@ -95,6 +95,7 @@ public class LoginServlet extends HttpServlet { } } } + resp.setContentType("application/json;charset=UTF-8"); if (res == null) TomcatCustomErrorHandler.sendCustomError(resp, 401, "Invalid credentials provided!"); else diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/AddressServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/AddressServlet.java index 758148c159ac0d7df0e59509f9af078833a042e3..2cab1704875cc43af8a5008fc7a759bbe78a39db 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/AddressServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/AddressServlet.java @@ -63,6 +63,7 @@ public class AddressServlet extends HttpServlet { JSONObject obj = new JSONObject(); obj.put("name", username); + resp.setContentType("application/json;charset=UTF-8"); if (username == null) TomcatCustomErrorHandler.sendCustomError(resp,404,"Address not found!"); else resp.getWriter().write(obj.toString()); } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/NameServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/NameServlet.java index 96a253a10cfb0a7181cb2ec0ec098565abb07433..b2dec3b8d8cbb2b5a7e14652b7b617bd97a4b50c 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/NameServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/jaminameserver/NameServlet.java @@ -58,6 +58,7 @@ public class NameServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { NameLookupResponse nameLookupResponse = nameServer.getAddressFromName(req.getPathInfo().replace("/","")); + resp.setContentType("application/json;charset=UTF-8"); if(nameLookupResponse == null) TomcatCustomErrorHandler.sendCustomError(resp,404,"name not found"); else resp.getOutputStream().write(JsonStream.serialize(nameLookupResponse).getBytes()); } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java b/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java index da079d0ff2f67c41153dd02f3c1aee934669460e..6adbcb275bbd90502f68758f6ad0a9c39f47f8e3 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java @@ -51,6 +51,7 @@ public class ApiFilter implements Filter { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + response.setContentType("application/json;charset=UTF-8"); if (!Server.isInstalled.get()) { TomcatCustomErrorHandler.sendCustomError(response,404,"Setup has not yet been completed!"); } else { diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/filters/InstallFilter.java b/jams-server/src/main/java/net/jami/jams/server/servlets/filters/InstallFilter.java index 478fe16c5a98dbac9bce25aef791b4ed57b993e3..3d57e902e5011bae152f3dba54e442f07d8bdb88 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/filters/InstallFilter.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/filters/InstallFilter.java @@ -46,6 +46,7 @@ public class InstallFilter implements Filter { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + response.setContentType("application/json;charset=UTF-8"); if(Server.isInstalled.get()){ TomcatCustomErrorHandler.sendCustomError(response,404,"The server is already installed"); } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/general/ServerStatusServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/general/ServerStatusServlet.java index 08fb91555ac50cd2f667586be0145513e4b74f73..e84c41e3e289e11c2351411f1180b27f4f9c20ab 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/general/ServerStatusServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/general/ServerStatusServlet.java @@ -41,6 +41,7 @@ public class ServerStatusServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { HashMap<String,String> statusInfo = new HashMap<>(); statusInfo.put("installed",String.valueOf(Server.isInstalled.get())); + resp.setContentType("application/json;charset=UTF-8"); resp.getOutputStream().write(JsonStream.serialize(statusInfo).getBytes()); } }