├── lean-server-example
├── src
│ ├── main
│ │ └── webapp
│ │ │ ├── favicon.ico
│ │ │ ├── images
│ │ │ ├── exit.png
│ │ │ ├── yahoo.png
│ │ │ ├── google.png
│ │ │ ├── openid.png
│ │ │ ├── twitter.png
│ │ │ └── facebook.png
│ │ │ ├── WEB-INF
│ │ │ ├── datastore-indexes.xml
│ │ │ ├── appengine-web.xml
│ │ │ └── web.xml
│ │ │ ├── admin
│ │ │ ├── scripts.jsp
│ │ │ └── settings.jsp
│ │ │ ├── loginerror.jsp
│ │ │ └── home.jsp
│ └── test
│ │ └── java
│ │ └── com
│ │ └── leanengine
│ │ └── gwtlite
│ │ └── GwtTestSample.java
├── License-example.txt
└── pom.xml
├── lean-server-lib
├── License-library.txt
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── leanengine
│ │ └── server
│ │ ├── auth
│ │ ├── Scheme.java
│ │ ├── AuthToken.java
│ │ ├── LeanAccount.java
│ │ ├── LogoutServlet.java
│ │ ├── MobileScheme.java
│ │ ├── WebScheme.java
│ │ ├── AuthFilter.java
│ │ ├── LoginErrorServlet.java
│ │ ├── FacebookMockLogin.java
│ │ ├── AuthService.java
│ │ ├── OpenIdLoginServlet.java
│ │ ├── FacebookAuth.java
│ │ └── FacebookLoginServlet.java
│ │ ├── appengine
│ │ ├── ServerUtils.java
│ │ ├── AccountUtils.java
│ │ └── DatastoreUtils.java
│ │ ├── entity
│ │ ├── QueryResult.java
│ │ ├── QuerySort.java
│ │ ├── QueryFilter.java
│ │ └── LeanQuery.java
│ │ ├── rest
│ │ ├── resteasy
│ │ │ ├── RestExceptionWrapper.java
│ │ │ ├── RestApplication.java
│ │ │ ├── RestExceptionMapper.java
│ │ │ └── RestSecurityInterceptor.java
│ │ ├── PublicServiceRest.java
│ │ ├── QueryRest.java
│ │ ├── EntityRest.java
│ │ └── ScriptRest.java
│ │ ├── SecurityFilter.java
│ │ ├── LeanEngineSettings.java
│ │ ├── LeanException.java
│ │ ├── DumpFilter.java
│ │ └── JsonUtils.java
└── pom.xml
├── .gitignore
├── License.txt
├── README.md
└── pom.xml
/lean-server-example/src/main/webapp/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/favicon.ico
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/images/exit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/images/exit.png
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/images/yahoo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/images/yahoo.png
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/images/google.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/images/google.png
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/images/openid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/images/openid.png
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/images/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/images/twitter.png
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/images/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PeterKnego/LeanEngine-Server/HEAD/lean-server-example/src/main/webapp/images/facebook.png
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/WEB-INF/datastore-indexes.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
--------------------------------------------------------------------------------
/lean-server-lib/License-library.txt:
--------------------------------------------------------------------------------
1 | All files for this library project, contained in this directory and sub-directories,
2 | are licensed under GNU Lesser General Public License version 3.
3 |
4 | For more info see http://www.gnu.org/licenses/lgpl.html
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | */.idea/
3 | *.iml
4 | *.ipr
5 | *.iws
6 | */*.iml
7 | */*.ipr
8 | */*.iws
9 | target/
10 | out/
11 | lean-server-lib/target/
12 | lean-server-lib/out/
13 | lean-server-main/target/
14 | lean-server-main/out/
15 | .DS_Store
16 |
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/auth/Scheme.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server.auth;
2 |
3 | import com.leanengine.server.LeanException;
4 |
5 | public interface Scheme {
6 |
7 | String getUrl(String authToken, String redirectUrl) throws LeanException;
8 |
9 | String getErrorUrl(LeanException exception, String redirectUrl);
10 | }
11 |
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/appengine/ServerUtils.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server.appengine;
2 |
3 | import com.google.appengine.api.utils.SystemProperty;
4 |
5 | public class ServerUtils {
6 |
7 | public static boolean isDevServer(){
8 | return SystemProperty.environment.value() == SystemProperty.Environment.Value.Development;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/admin/scripts.jsp:
--------------------------------------------------------------------------------
1 | <%--
2 | ~ This software is released under the BSD license. For full license see License-library.txt file.
3 | ~
4 | ~ Copyright (c) 2011, Peter Knego & Matjaz Tercelj
5 | ~ All rights reserved.
6 | --%>
7 | <%@ page contentType="text/html;charset=UTF-8" language="java" %>
8 |
9 |
10 |
11 | Scripts be here.
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/License.txt:
--------------------------------------------------------------------------------
1 | LeanEngine Server license
2 |
3 | All files for LeanEngine example server application, contained in ./lean-server-example directory and sub-directories,
4 | are licensed under modified BSD license. See lean-server-example/License-example.txt
5 |
6 | All files for LeanEngine server library, contained in ./lean-server-lib directory and sub-directories,
7 | are licensed under GNU Lesser General Public License v3. See lean-server-lib/License-library.txt
8 |
--------------------------------------------------------------------------------
/lean-server-example/src/main/webapp/WEB-INF/appengine-web.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | lean-engine-demo
4 | 1
5 |
6 |
7 | true
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/entity/QueryResult.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server.entity;
2 |
3 | import com.google.appengine.api.datastore.Cursor;
4 | import com.google.appengine.api.datastore.Entity;
5 |
6 | import java.util.List;
7 |
8 | public class QueryResult {
9 | private List result;
10 | private Cursor cursor;
11 |
12 | public QueryResult(List result, Cursor cursor) {
13 | this.result = result;
14 | this.cursor = cursor;
15 | }
16 |
17 | public List getResult() {
18 | return result;
19 | }
20 |
21 | public Cursor getCursor() {
22 | return cursor;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/auth/AuthToken.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server.auth;
2 |
3 | import java.util.UUID;
4 |
5 | public class AuthToken {
6 |
7 | public String token;
8 | public long accountID = 0;
9 | public long timeCreated;
10 |
11 | public AuthToken(long accountID) {
12 | this.accountID = accountID;
13 | this.token = UUID.randomUUID().toString();
14 | this.timeCreated = System.currentTimeMillis();
15 | }
16 |
17 | public AuthToken(String token, long accountID, long timeCreated) {
18 | this.token = token;
19 | this.accountID = accountID;
20 | this.timeCreated = timeCreated;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/lean-server-example/src/test/java/com/leanengine/gwtlite/GwtTestSample.java:
--------------------------------------------------------------------------------
1 | //package com.omnispots.client;
2 | //
3 | //import junit.framework.Assert;
4 | //
5 | //import com.google.gwt.junit.gwtlite.GWTTestCase;
6 | //
7 | //public class GwtTestSample
8 | // extends GWTTestCase
9 | //{
10 | //
11 | // public String getModuleName()
12 | // {
13 | // return "com.leanengine.Application";
14 | // }
15 | //
16 | // public void testSomething()
17 | // {
18 | // // Not much to actually test in this sample web
19 | // // Ideally you would test your Controller here (NOT YOUR UI)
20 | // // (Make calls to RPC services, test gwtlite side model objects, test gwtlite side logic, etc)
21 | // Assert.assertTrue( true );
22 | // }
23 | //}
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/rest/resteasy/RestExceptionWrapper.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server.rest.resteasy;
2 |
3 | import com.leanengine.server.LeanException;
4 | import org.codehaus.jackson.map.annotate.JsonSerialize;
5 |
6 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
7 | public class RestExceptionWrapper {
8 |
9 | public int code;
10 | public String message;
11 | public String cause;
12 |
13 | public RestExceptionWrapper(LeanException leanException) {
14 | code = leanException.getErrorCode();
15 | message = leanException.getMessage();
16 | cause = leanException.getCause() != null ? leanException.getCause().getMessage() : null;
17 | }
18 |
19 | public RestExceptionWrapper(Throwable throwable) {
20 | code = 0;
21 | message = throwable.getMessage();
22 | cause = throwable.getCause() != null ? throwable.getCause().getMessage() : null;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/SecurityFilter.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server;
2 |
3 | import com.leanengine.server.auth.AuthService;
4 |
5 | import javax.servlet.*;
6 | import javax.servlet.http.HttpServletResponse;
7 | import java.io.IOException;
8 |
9 | public class SecurityFilter implements Filter {
10 |
11 | @Override
12 | public void init(FilterConfig filterConfig) throws ServletException {
13 | }
14 |
15 | @Override
16 | public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
17 | if (AuthService.isUserLoggedIn()) {
18 | chain.doFilter(request, response);
19 | } else {
20 | HttpServletResponse httpResponse = (HttpServletResponse)response;
21 | httpResponse.sendError(401, "Error 401 Unauthorized: no user logged in.");
22 | }
23 | }
24 |
25 | @Override
26 | public void destroy() {
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/lean-server-lib/src/main/java/com/leanengine/server/rest/resteasy/RestApplication.java:
--------------------------------------------------------------------------------
1 | package com.leanengine.server.rest.resteasy;
2 |
3 | import com.leanengine.server.rest.*;
4 |
5 | import javax.ws.rs.core.Application;
6 | import java.util.HashSet;
7 | import java.util.Set;
8 | import java.util.logging.Logger;
9 |
10 | public class RestApplication extends Application {
11 |
12 | private Set