-
Notifications
You must be signed in to change notification settings - Fork 3
/
FreshDeskSSOServlet.java
58 lines (40 loc) · 1.52 KB
/
FreshDeskSSOServlet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FreshDeskSSOServlet extends HttpServlet {
private static final long serialVersionUID = 7027717204177362374L;
private final String BASE_URL = "http://demo.freshdesk.com/login/sso";
private final String sharedSecret = "df02b88d971c78807a644adeae260919";
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
try {
String url = this.getSSOURL();
response.sendRedirect(url);
} catch (Exception e) {
//Handle appropriate code
}
}
private static String getHash(String text) throws Exception {
MessageDigest m=MessageDigest.getInstance("MD5");
m.update(text.getBytes(),0,text.length());
return ""+new BigInteger(1,m.digest()).toString(16);
}
private String getSSOURL() {
String hash;
String url = null;
User user; //Get the user details using your current authentication system
String name = "kiran darisi";// Full name of the user
String email = "kiran@freshdesk.com";// Email of the user
hash = getHash(name + email + sharedSecret);
try {
url = BASE_URL + "?name="+name+"&email="+email+"&hash=" + hash;
}catch (Exception e) {
//Handle appropriate code
System.out.println("There is an exception while constructing the URL");
e.printStackTrace();
}
return url;
}
}