blob: dc15edbfd180cea6b92cc452fdc5724f74d1b481 [file] [log] [blame]
<!DOCTYPE html>
<!--
Generated by Apache Maven Doxia at 2017-03-29
Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache OpenMeetings Project -
Howto create a Custom Crypt styles</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta name="author" content="Apache OpenMeetings Team" />
<meta http-equiv="content-language" content="en" />
<link href=".//css/bootstrap.min.css" rel="stylesheet" />
<link href=".//css/bootstrap-responsive.min.css" rel="stylesheet" />
<link href=".//css/docs.css" rel="stylesheet" />
<link href=".//css/reflow-skin.css" rel="stylesheet" />
<link href=".//css/lightbox.css" rel="stylesheet" />
<link href=".//css/site.css" rel="stylesheet" />
<link href=".//css/print.css" rel="stylesheet" media="print" />
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src=".//js/html5.js"></script>
<![endif]-->
</head>
<body class="page-customcryptmechanism project-openmeetings-server" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="brand"><span class="color-highlight">Apache</span> OpenMeetings</div>
<div class="nav-collapse collapse" id="top-nav-collapse">
<ul class="nav pull-right">
<li ><a href="demo.html" title="Demo">Demo</a></li>
<li ><a href="downloads.html" title="Download">Download</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" title="Wiki" class="externalLink">Wiki</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">General <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="index.html" title="Home">Home</a></li>
<li ><a href="license.html" title="License">License</a></li>
<li ><a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a></li>
<li ><a href="CallForLogo.html" title="Call For Logo">Call For Logo</a></li>
<li ><a href="NewsArchive.html" title="News archive">News archive</a></li>
<li ><a href="security.html" title="Security">Security</a></li>
<li ><a href="commercial-support.html" title="Commercial Support">Commercial Support</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="installation.html" title="Installation">Installation</a></li>
<li ><a href="Upgrade.html" title="Upgrade">Upgrade</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a></li>
<li ><a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="get-involved.html" title="Get Involved">Get Involved</a></li>
<li ><a href="team-list.html" title="Committers">Committers</a></li>
<li ><a href="OurUsers.html" title="Our Users">Our Users</a></li>
<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
<li ><a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="source-repository.html" title="Source Code">Source Code</a></li>
<li ><a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a></li>
<li ><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
<li ><a href="integration.html" title="Continuous Integration">Continuous Integration</a></li>
<li ><a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a></li>
<li ><a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a></li>
<li ><a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a></li>
<li ><a href="ManualTesting.html" title="Manual Testing">Manual Testing</a></li>
<li ><a href="ReleaseGuide.html" title="Release Guide">Release Guide</a></li>
<li ><a href="WebsiteGuide.html" title="Website Guide">Website Guide</a></li>
</ul>
</li>
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#integration" title="Integration">Integration</a>
<ul class="dropdown-menu">
<li ><a href="openmeetings-webservice/apidocs/index.html" title="SOAP/REST API" target="_blank">SOAP/REST API</a></li>
<li ><a href="RestAPISample.html" title="REST API Sample">REST API Sample</a></li>
<li ><a href="LdapAndADS.html" title="Ldap and ADS">Ldap and ADS</a></li>
<li ><a href="oauth2.html" title="OAuth2">OAuth2</a></li>
<li ><a href="voip-sip-integration.html" title="VoIP and SIP">VoIP and SIP</a></li>
<li ><a href="errorvalues.html" title="Errors table">Errors table</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#plugins" title="Plugins">Plugins</a>
<ul class="dropdown-menu">
<li ><a href="MoodlePlugin.html" title="Moodle Plugin">Moodle Plugin</a></li>
<li ><a href="SakaiPlugin.html" title="Sakai Plugin">Sakai Plugin</a></li>
<li ><a href="JiraPlugin.html" title="Jira Plugin">Jira Plugin</a></li>
<li ><a href="JoomlaPlugin.html" title="Joomla Plugin">Joomla Plugin</a></li>
<li ><a href="DrupalPlugin.html" title="Drupal Plugin">Drupal Plugin</a></li>
<li ><a href="BitrixPlugin.html" title="Bitrix Plugin">Bitrix Plugin</a></li>
<li ><a href="ConfluencePlugin.html" title="Confluence Plugin">Confluence Plugin</a></li>
<li ><a href="SugarCRMPlugin.html" title="SugarCRM Plugin">SugarCRM Plugin</a></li>
<li ><a href="RedminePlugin.html" title="Redmine Plugin">Redmine Plugin</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#db" title="DB Sample Configurations">DB Sample Configurations</a>
<ul class="dropdown-menu">
<li ><a href="ApacheDerbyConfig.html" title="Apache Derby">Apache Derby</a></li>
<li ><a href="IBMDB2Config.html" title="IBM DB2">IBM DB2</a></li>
<li ><a href="OracleConfig.html" title="Oracle">Oracle</a></li>
<li ><a href="MySQLConfig.html" title="MySQL">MySQL</a></li>
<li ><a href="PostgresConfig.html" title="Postgres">Postgres</a></li>
<li ><a href="MSSQLConfig.html" title="MSSQL">MSSQL</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#localization" title="Localization and languages">Localization and languages</a>
<ul class="dropdown-menu">
<li ><a href="Internationalisation.html" title="Internationalisation">Internationalisation</a></li>
<li ><a href="LanguageEditor.html" title="LanguageEditor">LanguageEditor</a></li>
<li ><a href="TimeZoneHandling.html" title="TimeZoneHandling">TimeZoneHandling</a></li>
<li ><a href="EditTemplates.html" title="EditTemplates">EditTemplates</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#port" title="NAT Port Settings">NAT Port Settings</a>
<ul class="dropdown-menu">
<li ><a href="PortSettings.html" title="Port settings">Port settings</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#performance" title="Performance">Performance</a>
<ul class="dropdown-menu">
<li ><a href="JVMPerformanceTuning.html" title="JVM performance tuning">JVM performance tuning</a></li>
<li ><a href="NetworkCalculator.html" title="Network bandwidth calculator">Network bandwidth calculator</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#interface" title="User Interface">User Interface</a>
<ul class="dropdown-menu">
<li ><a href="themes-and-branding.html" title="Themes">Themes</a></li>
<li ><a href="Dashboard.html" title="Dashboard">Dashboard</a></li>
<li ><a href="WebcamResolutions.html" title="Webcam resolutions">Webcam resolutions</a></li>
<li ><a href="ConferenceRoomLayoutOptions.html" title="Room layout options">Room layout options</a></li>
<li ><a href="HotKeys.html" title="Hot Keys">Hot Keys</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#customize" title="Customization">Customization</a>
<ul class="dropdown-menu">
<li ><a href="WebappNamePath.html" title="Webapp name/path">Webapp name/path</a></li>
<li ><a href="Navigation.html" title="Navigation">Navigation</a></li>
<li ><a href="CalendarAndTimezone.html" title="Calendar and timezone">Calendar and timezone</a></li>
<li ><a href="CustomRoomTypeHowTo.html" title="Custom room type">Custom room type</a></li>
<li class="active"><a href="" title="Custom crypt mechanism">Custom crypt mechanism</a></li>
<li ><a href="GeneralConfiguration.html" title="General Configuration">General Configuration</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#security" title="Security">Security</a>
<ul class="dropdown-menu">
<li ><a href="RestrictedAccess.html" title="Restricted Access">Restricted Access</a></li>
<li ><a href="RTMPSAndHTTPS.html" title="RTMPS and HTTPS">RTMPS and HTTPS</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#convert" title="Converters">Converters</a>
<ul class="dropdown-menu">
<li ><a href="OpenOfficeConverter.html" title="OpenOffice Converter">OpenOffice Converter</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#cluster" title="Clustering">Clustering</a>
<ul class="dropdown-menu">
<li ><a href="Clustering.html" title="Clustering">Clustering</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomCryptMechanism.html#misc" title="Misc">Misc</a>
<ul class="dropdown-menu">
<li ><a href="GetVersionInfo.html" title="Get version info">Get version info</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
<!-- Masthead
================================================== -->
<header>
<div class="jumbotron subhead">
<div class="row" id="banner">
<div class="span12">
<div class="pull-left">
<a href="index.html" id="bannerLeft"><img src="images/logo.png" alt='"'Apache OpenMeetings'"' /></a>
</div>
<div class="pull-right">
<a href="http://apache.org" id="bannerRight"><img src="http://apache.org/img/asf_logo.png" alt='"'Apache'"' /></a>
</div>
</div>
</div>
</div>
<div>
<ul class="breadcrumb">
<li class="publishDate version-date">Last Published: 2017-03-29</li>
</ul>
</div>
</header>
<div class="main-body">
<div class="row">
<div class="span8">
<div class="body-content">
<!-- Licensed 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. -->
<div class="section">
<div class="page-header">
<h2 id="Configuration_of_Custom_Crypt-Style">Configuration of Custom Crypt-Style</h2>
</div>
<p> You can use custom Crypt-Types, but you should decide during installation which Type of encryption you want to use. By default two type are available: </p>
<ul>
<li>org.apache.openmeetings.util.crypt.MD5Implementation - this uses common MD5 Crypt like PHP does, this is the default one (results in something like: fe01ce2a7fbac8fafaed7c982a04e229)</li>
<li>org.apache.openmeetings.util.crypt.MD5CryptImplementation - does use BSD-Style of encryption using a salt (results in something like: $1$GMsj7F2I$5S3r9CeukXGXNwf6b4sph1)</li>
</ul>
<p> You can edit the config-key during Installation or later in the Administration Panel. But if you change it using the Administration-Panel previous passwords might be not working anymore as they are encrypted with another algorithm. </p>
</div>
<div class="section">
<h2 id="Configuration_of_Custom_Crypt-Style">Configuration of Custom Crypt-Style</h2>
<p> To add your own crypt style you need to write a class which implements the interface: org.apache.openmeetings.util.crypt.ICrypt <br /> Example of an Implementation: </p>
<div class="source">
<pre>
package org.apache.openmeetings.util.crypt;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.security.NoSuchAlgorithmException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
public class MD5Implementation implements ICrypt {
private static final Logger log = Red5LoggerFactory.getLogger(MD5Implementation.class, webAppRootKey);
/*
* (non-Javadoc)
* @see org.apache.openmeetings.utils.crypt.ICrypt#hash(java.lang.String)
*/
@Override
public String hash(String str) {
String passPhrase = null;
try {
passPhrase = MD5.checksum(str);
} catch (NoSuchAlgorithmException e) {
log.error(&quot;Error&quot;, e);
}
return passPhrase;
}
/*
* (non-Javadoc)
* @see org.apache.openmeetings.utils.crypt.ICrypt#verify(java.lang.String, java.lang.String)
*/
@Override
public boolean verify(String str, String hash) {
return hash != null &amp;&amp; hash.equals(hash(str));
}
}
</pre>
</div>
<p>To add your own Encryption-Class you need to add your class to the OpenMeetings-Webapp (make it available to the webapp-classpath) and use your custom-class-name instead of org.apache.openmeetings.util.crypt.MD5Implementation during the Installation or at runtime by editing the config-key crypt_ClassName</p>
</div>
<div class="section">
<h2 id="Configuration_of_Custom_Crypt-Style">Configuration of Custom Crypt-Style</h2>
<p>credits goto Mika for sharing his Implementation of the MD5Crypt-Style</p>
</div>
</div>
</div>
<div class="span4">
<div id="toc-sidebar">
<div class="well">
<ul class="nav nav-list">
<li class="nav-header">Table of Contents</li>
<li><a href="#Configuration_of_Custom_Crypt-Style" title="Configuration of Custom Crypt-Style">Configuration of Custom Crypt-Style</a>
<li><a href="#Configuration_of_Custom_Crypt-Style" title="Configuration of Custom Crypt-Style">Configuration of Custom Crypt-Style</a>
<li><a href="#Configuration_of_Custom_Crypt-Style" title="Configuration of Custom Crypt-Style">Configuration of Custom Crypt-Style</a>
</ul>
</div>
</div>
</div>
</div>
</div>
</div><!-- /container -->
<!-- Footer
================================================== -->
<footer class="well">
<div class="container">
<div class="row">
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">General</li>
<li >
<a href="index.html" title="Home">Home</a>
</li>
<li >
<a href="license.html" title="License">License</a>
</li>
<li >
<a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a>
</li>
<li >
<a href="CallForLogo.html" title="Call For Logo">Call For Logo</a>
</li>
<li >
<a href="NewsArchive.html" title="News archive">News archive</a>
</li>
<li >
<a href="security.html" title="Security">Security</a>
</li>
<li >
<a href="commercial-support.html" title="Commercial Support">Commercial Support</a>
</li>
</ul>
</div>
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Installation</li>
<li >
<a href="installation.html" title="Installation">Installation</a>
</li>
<li >
<a href="Upgrade.html" title="Upgrade">Upgrade</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a>
</li>
<li >
<a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a>
</li>
</ul>
</div>
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Community</li>
<li >
<a href="get-involved.html" title="Get Involved">Get Involved</a>
</li>
<li >
<a href="team-list.html" title="Committers">Committers</a>
</li>
<li >
<a href="OurUsers.html" title="Our Users">Our Users</a>
</li>
<li >
<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li >
<a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a>
</li>
</ul>
</div>
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Development</li>
<li >
<a href="source-repository.html" title="Source Code">Source Code</a>
</li>
<li >
<a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a>
</li>
<li >
<a href="dependencies.html" title="Dependencies">Dependencies</a>
</li>
<li >
<a href="integration.html" title="Continuous Integration">Continuous Integration</a>
</li>
<li >
<a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a>
</li>
<li >
<a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a>
</li>
<li >
<a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a>
</li>
<li >
<a href="ManualTesting.html" title="Manual Testing">Manual Testing</a>
</li>
<li >
<a href="ReleaseGuide.html" title="Release Guide">Release Guide</a>
</li>
<li >
<a href="WebsiteGuide.html" title="Website Guide">Website Guide</a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<div class="container subfooter">
<div class="row">
<div class="span12">
<p class="pull-right"><a href="#">Back to top</a></p>
<p class="copyright">Copyright &copy;2012-2017 <a href="http://apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
</div>
</div>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src=".//js/jquery.min.js"></script>
<script src=".//js/bootstrap.min.js"></script>
<script src=".//js/lightbox.min.js"></script>
<script src=".//js/reflow-scroll.js"></script>
<script src=".//js/jquery-ui.min.js" type="text/javascript"></script>
<script src=".//js/netcalc.js" type="text/javascript"></script>
<script src=".//js/reflow-skin.js"></script>
</body>
</html>