1 <%@ page import="org.wso2.carbon.context.CarbonContext" %>
 2 <%@ page import="org.wso2.carbon.user.api.UserRealm" %>
 3 <%@ page import="org.wso2.carbon.user.api.UserStoreException" %>
 4 <%@ page import="java.util.List"%>
 5 <%@ page import="java.util.Arrays"%>
 6 <%
 7     String username = request.getParameter("username");
 8     String password = request.getParameter("password");
 9     String role = request.getParameter("role");
10     boolean status = false;
11
12     try {
13         CarbonContext context = CarbonContext.getThreadLocalCarbonContext();
14         UserRealm realm = context.getUserRealm();
15         if(role == null){
16             if (username != null && username.trim().length() > 0) {
17                 status = realm.getUserStoreManager().authenticate(username, password);
18             }
19         } else {
20             if (username != null && username.trim().length() > 0) {
21                 status = Arrays.asList(realm.getUserStoreManager().getRoleListOfUser(username)).contains(role);
22             }
23         }
24     } catch (UserStoreException e) {
25         e.printStackTrace();
26     }
27
28     if (status) {
29         session.setAttribute("logged-in", "true");
30         session.setAttribute("username", username);
31         if(role != null){
32             session.setAttribute("logged-in-with-role", "true");
33         }
34         response.sendRedirect("index.jsp");
35     } else {
36         session.invalidate();
37         response.sendRedirect("index.jsp?failed=true");
38     }
39 %>