1
package org.apache.solr.update.processor;
3
* Licensed to the Apache Software Foundation (ASF) under one or more
4
* contributor license agreements. See the NOTICE file distributed with
5
* this work for additional information regarding copyright ownership.
6
* The ASF licenses this file to You under the Apache License, Version 2.0
7
* (the "License"); you may not use this file except in compliance with
8
* the License. You may obtain a copy of the License at
10
* http://www.apache.org/licenses/LICENSE-2.0
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
19
import java.io.UnsupportedEncodingException;
20
import java.security.MessageDigest;
21
import java.security.NoSuchAlgorithmException;
23
import org.slf4j.Logger;
24
import org.slf4j.LoggerFactory;
26
public class MD5Signature extends Signature {
27
protected final static Logger log = LoggerFactory.getLogger(MD5Signature.class);
28
private static ThreadLocal<MessageDigest> DIGESTER_FACTORY = new ThreadLocal<MessageDigest>() {
30
protected MessageDigest initialValue() {
32
return MessageDigest.getInstance("MD5");
33
} catch (NoSuchAlgorithmException e) {
34
throw new RuntimeException(e);
38
private MessageDigest digester;
40
public MD5Signature() {
41
digester = DIGESTER_FACTORY.get();
46
public void add(String content) {
48
digester.update(content.getBytes("UTF-8"));
49
} catch (UnsupportedEncodingException e) {
51
log.error("UTF-8 not supported", e);
52
throw new RuntimeException(e);
57
public byte[] getSignature() {
58
return digester.digest();