diff --git a/src/de/superx/servlet/SuperXmlPwChanger.java b/src/de/superx/servlet/SuperXmlPwChanger.java index c950077..2abed2e 100644 --- a/src/de/superx/servlet/SuperXmlPwChanger.java +++ b/src/de/superx/servlet/SuperXmlPwChanger.java @@ -39,11 +39,16 @@ import de.superx.util.SqlStringUtils; public class SuperXmlPwChanger extends HttpServlet { private static final long serialVersionUID = 1L; - + private static String encodeAlgorithm; @Override public void init(ServletConfig config) throws ServletException { super.init(config); ServletUtils.setPath(getServletConfig().getServletContext().getRealPath("/xml")); + encodeAlgorithm=config + .getInitParameter("encodeAlgorithm"); + if(encodeAlgorithm==null || encodeAlgorithm.equals("")) + encodeAlgorithm="SHA512"; + } @@ -127,8 +132,15 @@ public class SuperXmlPwChanger extends HttpServlet { sendBackHtml(UserInitializer.getPwChangeHtml(add + "Die eingegeben Passwörter stimmten nicht überein")); } else { - if (user.isPWUsedBefore(passwort) || CryptUtils.encodeSHA(passwort).equals(currentSha) - || CryptUtils.encodeSHA(passwort + CryptUtils.geheimnis1).equals(currentSha)) { + if (user.isPWUsedBefore(passwort) || CryptUtils.encodeSHA(passwort).equals( + currentSha) + || CryptUtils.encodeSHA( + passwort + CryptUtils.geheimnis1) + .equals(currentSha) + || CryptUtils.encodeSHA512( + passwort) + .equals(currentSha) + ) { sendBackHtml(UserInitializer.getPwChangeHtml(add + "Sie müssen ein neues Passwort eingeben (kein bereits früher benutztes)")); } else { @@ -193,8 +205,13 @@ public class SuperXmlPwChanger extends HttpServlet { if (akt_versuch >= max_versuch) msg = UserInitializer.MAXIMALE_LOGIN_VERSUCHE_UEBERSCHRITTEN; else if (CryptUtils.encodeSHA(altesPasswort).equals(oldsha) - || CryptUtils.encodeSHA(altesPasswort + CryptUtils.geheimnis1).equals(oldsha)) - isOk = true; + ||CryptUtils.encodeSHA( + altesPasswort + CryptUtils.geheimnis1).equals( + oldsha) + ||CryptUtils.encodeSHA512( + altesPasswort).equals( + oldsha)) + isOk = true; else { try (Statement stm = con.createStatement()) { stm.executeUpdate("update userinfo set akt_versuch=akt_versuch+1 " + " where tid=" @@ -215,7 +232,14 @@ public class SuperXmlPwChanger extends HttpServlet { private void dbUpdate() throws Exception { Statement stm = con.createStatement(); - String newSha = CryptUtils.encodeSHA(passwort + CryptUtils.geheimnis1); + String newSha = ""; + if(encodeAlgorithm.equals("SHA512")) + newSha = CryptUtils.encodeSHA512(passwort); + if(encodeAlgorithm.equals("SHA_SALTED")) + newSha = CryptUtils.encodeSHA512(passwort+ CryptUtils.geheimnis1); + if(encodeAlgorithm.equals("SHA")) + newSha = CryptUtils.encodeSHA(passwort); + int rowcount = stm.executeUpdate( "update userinfo set passwd_sha='" + newSha + "',kennwort='' where tid=" + user.getId() + ";"); if (rowcount != 1) diff --git a/src/de/superx/servlet/UserInitializer.java b/src/de/superx/servlet/UserInitializer.java index f0a302a..983f6e2 100644 --- a/src/de/superx/servlet/UserInitializer.java +++ b/src/de/superx/servlet/UserInitializer.java @@ -931,8 +931,16 @@ public class UserInitializer { } private boolean isPasswordInSuperXDatabaseOK(String enteredPassword) { - return EqualsUtil.areEqual(user.getCurrentSha(), CryptUtils.encodeSHA(enteredPassword)) || EqualsUtil - .areEqual(user.getCurrentSha(), CryptUtils.encodeSHA(enteredPassword + CryptUtils.geheimnis1)); + boolean isPasswordOK = false; + String encoded_sha = CryptUtils.encodeSHA(enteredPassword); + String encoded_sha2 = CryptUtils.encodeSHA(enteredPassword + CryptUtils.geheimnis1); + String encoded_sha512 = CryptUtils.encodeSHA512(enteredPassword); + if ( user.getCurrentSha().equals(encoded_sha) + || user.getCurrentSha().equals(encoded_sha2) + || user.getCurrentSha().equals(encoded_sha512)) { + isPasswordOK = true; + } + return isPasswordOK ; } private void updateLastLogin(Statement stm) throws SQLException { diff --git a/superx/WEB-INF/conf/version.properties b/superx/WEB-INF/conf/version.properties index 7934293..c2d7153 100644 --- a/superx/WEB-INF/conf/version.properties +++ b/superx/WEB-INF/conf/version.properties @@ -1,2 +1,2 @@ git.branch=HEAD -git.commit.hash=1353a23d02b48fed4e6f9c227ecebdc914bfc9b5 +git.commit.hash=5c38a3bf9f7a03c5cdf7c3fbcfcbbf07c7fdd36b diff --git a/superx/WEB-INF/lib/superx6.0.jar b/superx/WEB-INF/lib/superx6.0.jar index 692280c..352a29d 100644 Binary files a/superx/WEB-INF/lib/superx6.0.jar and b/superx/WEB-INF/lib/superx6.0.jar differ diff --git a/superx/WEB-INF/saiku/applicationContext-saiku-webapp.xml b/superx/WEB-INF/saiku/applicationContext-saiku-webapp.xml index 2ff0dfc..6886936 100644 --- a/superx/WEB-INF/saiku/applicationContext-saiku-webapp.xml +++ b/superx/WEB-INF/saiku/applicationContext-saiku-webapp.xml @@ -43,7 +43,7 @@ - + diff --git a/superx/xml/superxml_html.css b/superx/xml/superxml_html.css index c987615..aeb65e2 100644 --- a/superx/xml/superxml_html.css +++ b/superx/xml/superxml_html.css @@ -1,377 +1,2 @@ -body{ - background-color: #FFFFFF; - /* padding:8pt; */ - margin:0px; - font:10pt Verdana, Geneva, Arial, helvetica, sans-serif; - /* color: #333333; */ -} - -/* sehr unschöner Stil. Alle img auf Höhe 16px -> Probleme mit SuperX-Standalone, daher eigene Kopie superx_standalone.css von dieser Datei */ -img{ - height:16px; -} -.logoPortal{ - height:54px; - width:180px; -} - - -table.resultset -{ -margin-left:0px; -margin-right:0px; -margin-top:0px; -margin-bottom:0px; -padding-left:0px; -padding-right:0px; -padding-top:0px; -padding-bottom:0px; -border:none; -} - - -p.legende -{ -background-color:rgb(250,250,250); -font-size:10pt; -border:thin solid gray -} -p.maskentitel,h1,h2 -/* entspricht h1 */ -{ - /* clear: left; - font-size: 200%; - line-height: 205%; - font-weight: bold; - margin: 0em 0em .6em 0em */ - - border-bottom: 2px solid black; - /* border-bottom: 2px solid #CCCCFF; - border-left: 2px solid #CCCCFF; */ - color: black; - /* color: #1338DB; */ - display: block; - font-size: 200%; - font-weight: bold; - margin: 5px 0 20px 5px; - padding: 0px 0px 0px 5px; -} -p.smallBreak -{ -padding:0px; -margin:0px -} - -span.feldname -{ -font-weight:lighter -} -span.feldwert -{ -font-weight:bolder -} - -td.ergfeld -{ -empty-cells:show; -vertical-align:top; -/* height:20px; */ -padding:4px; -} -td.header -{ -font-size:10pt; -font-weight:bold; -text-align:center -} -td.result -{ -font-size:10pt; -/*font-weight:light;*/ -empty-cells:show; -} -td.string -{ -text-align:left; -empty-cells:show -} -td.decimal -{ -empty-cells:show; -vertical-align:top; -/* height:20px; */ -padding:4px; - -} -td.integer -{ -empty-cells:show; -vertical-align:top; -/* height:20px; */ -padding:4px; - -} - -p.errmsg -{ - border: medium solid red; - text-align:left; - background-color:rgb(240,240,240); -} - -p.nachricht -{border:medium solid red; -} -table.rahmen -{ -margin: 0px; -padding: 0px; -border:thin solid gray} - -table.maske -{ -width:93%; -margin-left:0px; -margin-right:0px; -margin-top:0px; -margin-bottom:0px; -padding-left:0px; -padding-right:0px; -padding-top:0px; -padding-bottom:0px; -border:none; -background-color:#fff6d9 -} - -table.buttons -{ -margin-left:0px; -margin-right:0px; -margin-top:0px; -margin-bottom:0px; -padding-left:0px; -padding-right:0px; -padding-top:0px; -padding-bottom:0px; -border:none -} - -td.rahmen -{ -border:thin solid black -} - -td.kopf{ - vertical-align:top; - text-align:center; - border:thin solid silver; - font-size:14pt; - font-weight:bolder -} -td.zeilen { - margin: 0px; - padding: 0px; - border:thin solid gray; - color:black; - font-family: sans-serif; - font-size:smaller; - vertical-align:top; - text-align:center - } - -table.feld -{ -margin: 0px; -padding: 0px; -border:none -} -tr.feld -{ -margin: 0px; -padding: 0px; -border:none -} -td.feld -{ -margin: 0px; -padding: 0px; -border:none -} - - - -table.header -{ -width:100%; -margin:0; -padding:0 -} -td.headerleft -{width:70%;margin:0; -padding:0; -text-align:left;vertical-align:top -} -td.headerright -{width:25%; -margin:0; -padding:0; -text-align:left;vertical-align:top -} -td.headermiddle -{width:5%; -margin:0; -padding:0; -text-align:left;vertical-align:top -} - -td.Hochschulname -/* entspricht h1 */ -{ - clear: left; - font-size: 140%; - line-height: 145%; - font-weight: bold; - margin: 0em 0em .6em 0em -} -td.Studienfach -{ -font-weight:bolder -} -td.bezeichnung -{ -font-size:1.1em; -font-weight:bolder; -} -td.funktionsbezeichnung -{ -font-size:1.2em; -font-weight:bolder -} - -td.Person -{ -font-weight:bolder -} -#breadcrumbs { - /* font-size: x-small;*/ - margin: 0pt; - background-color:#f1f1f1; - /* line-height:14px; */ -} -.xleft { - float:left; -} -.xright { - float:right; -} -input.clsButtonStyle { - - font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: normal; - border:thin solid blue; - /* background-color:#ffffcc; Button-Hintergrundfarbe entfernt */ - - -} -.divBreadcrumb { - font-size: 70%; - padding-bottom: 0px; -} - -.table_lable { - text-align:right; - vertical-align:top; - font-size:0.8em; - vertical-align: middle; -} -.table_button { - text-align:left; - vertical-align:top -} -.submit_image { - margin: 1px 1px 1px 10px; - padding: 1px 1px 1px 1px; - vertical-align: middle; -} - -.submit_image:hover, .submit_image:focus, .submit_image:active { - background-color: #CBDEF3; -} - -.hs_header_inst { - text-align:center; - margin: 0px; - padding: 0px; - -} -.hs_header_url { - text-align:center; - font-size: 60%; - margin: 0px; - padding: 0px; - -} -.hs_header_img { - text-align:right; - margin: 0px; - padding: 0px; - -} - -div#validation p { - color: #CC0000; - font-size: 70%; - margin: 20px 10px; -} - -/*###############*/ -/*# Runde Ecken #*/ -/*###############*/ - -.round_corner_pointer { cursor:pointer; } - -/* Inset 3D Raised */ -.round_corner {background: transparent; margin:0 0 0 0;display:block;} -.round_corner_link {background: transparent; width:500px; margin:2px 0 0 0;display:block; /* cursor:pointer; */ } -.round_corner a, .round_corner p {margin:0 10px;color: #1338DB;} -.round_corner a { /* text-decoration:underline; */ font-weight:bold; } -.round_corner p { color: #000000;} - -.round_corner .top, .round_corner .bottom {display:block; background:transparent; font-size:1px;} -.round_corner .b1, .round_corner .b2, .round_corner .b3, .round_corner .b4, .round_corner .b1b, .round_corner .b2b, .round_corner .b3b, .round_corner .b4b {display:block; overflow:hidden;} -.round_corner .b1, .round_corner .b2, .round_corner .b3, .round_corner .b1b, .round_corner .b2b, .round_corner .b3b {height:1px;} -.round_corner .b2 {background:#ccccff; border-left:1px solid #fff; border-right:1px solid #eee;} -.round_corner .b3 {background:#ccccff; border-left:1px solid #fff; border-right:1px solid #ddd;} -.round_corner .b4 {background:#ccccff; border-left:1px solid #fff; border-right:1px solid #aaa;} -.round_corner .b4b {background:#ccccff; border-left:1px solid #eee; border-right:1px solid #999;} -.round_corner .b3b {background:#ccccff; border-left:1px solid #ddd; border-right:1px solid #999;} -.round_corner .b2b {background:#ccccff; border-left:1px solid #aaa; border-right:1px solid #999;} - -.round_corner .b1 {margin:0 5px; background:#fff;} -.round_corner .b2, .round_corner .b2b {margin:0 3px; border-width:0 2px;} -.round_corner .b3, .round_corner .b3b {margin:0 2px;} -.round_corner .b4, .round_corner .b4b {height:2px; margin:0 1px;} -.round_corner .b1b {margin:0 5px; background:#999;} -.round_corner .boxcontent {display:block; background:#fff6d9; border-left:1px solid #fff; border-right:1px solid #999;} - - -/* Inset 3D Curved */ - -.round_corner:hover, .round_corner:focus, .round_corner:active {background: transparent; margin:0 0 0 0;display:block;} -.round_corner_link:hover, .round_corner_link:focus, .round_corner_link:active {background: transparent; width:500px; margin:2px 0 0 0;display:block; /* cursor:pointer; */ } -.round_corner_link:hover h1, .round_corner_link:focus h1, .round_corner_link:active h1 {font-size:2em; color:#fff; letter-spacing:1px;} - -.round_corner_link:hover .b2, .round_corner_link:focus .b2, .round_corner_link:active .b2 {background:#ccccff; border-left:1px solid #999; border-right:1px solid #aaa;} -.round_corner_link:hover .b3, .round_corner_link:focus .b3, .round_corner_link:active .b3 {background:#ccccff; border-left:1px solid #999; border-right:1px solid #ddd;} -.round_corner_link:hover .b4, .round_corner_link:focus .b4, .round_corner_link:active .b4 {background:#ccccff; border-left:1px solid #999; border-right:1px solid #eee;} -.round_corner_link:hover .b4b, .round_corner_link:focus .b4b, .round_corner_link:active .b4b {background:#ccccff; border-left:1px solid #aaa; border-right:1px solid #fff;} -.round_corner_link:hover .b3b, .round_corner_link:focus .b3b, .round_corner_link:active .b3b {background:#ccccff; border-left:1px solid #ddd; border-right:1px solid #fff;} -.round_corner_link:hover .b2b, .round_corner_link:focus .b2b, .round_corner_link:active .b2b {background:#ccccff; border-left:1px solid #eee; border-right:1px solid #fff;} - -.round_corner_link:hover .b1, .round_corner_link:focus .b1, .round_corner_link:active .b1 {margin:0 5px; background:#999;} -.round_corner_link:hover .b1b, .round_corner_link:focus .b1b, .round_corner_link:active .b1b {margin:0 5px; background:#fff;} - -.round_corner_link:hover .boxcontent, .round_corner_link:focus .boxcontent, .round_corner_link:active .boxcontent {display:block; background:#ccccff; border-left:1px solid #999; border-right:1px solid #fff;} - - +@import url("/superx/style/bulma.css"); +@import url("/superx/style/sx_common.css");