/** * Change the password for this slice * * <p>A slice is allowed to change its own password and the password of any slice that it has * (transitively) created * * @param sliceName * @param newPasswd */ @Override public Boolean changePasswd(String sliceName, String newPasswd) throws PermissionDeniedException { String changerSlice = APIUserCred.getUserName(); if (!APIAuth.transitivelyCreated(changerSlice, sliceName) && !FVConfig.isSupervisor(changerSlice)) throw new PermissionDeniedException( "Slice " + changerSlice + " does not have perms to change the passwd of " + sliceName); String salt = APIAuth.getSalt(); String crypt = APIAuth.makeCrypt(salt, newPasswd); sliceName = FVConfig.sanitize(sliceName); // set passwd is synchronized FVConfig.setPasswd(sliceName, salt, crypt); FlowVisor.getInstance().checkPointConfig(); return true; }