Repository: openmeetings Updated Branches: refs/heads/master 3dac8e2fe -> a771f1eb1
[OPENMEETINGS-1714] more issues are fixed Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/a771f1eb Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/a771f1eb Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/a771f1eb Branch: refs/heads/master Commit: a771f1eb1bb40bb1e70a779e05794597911800a5 Parents: 3dac8e2 Author: Maxim Solodovnik <[email protected]> Authored: Sun Oct 1 15:04:24 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Sun Oct 1 15:04:24 2017 +0700 ---------------------------------------------------------------------- .../db/dto/room/RoomOptionsDTO.java | 6 ++- .../db/dto/user/ExternalUserDTO.java | 18 ++++--- .../web/app/OmAuthenticationStrategy.java | 2 +- .../web/app/TestOmAuthenticationStrategy.java | 23 ++++++++- .../openmeetings/web/app/TestWebSession.java | 51 ++++++++++++++++++++ .../webservice/TestUserService.java | 49 +++++++++++++------ 6 files changed, 123 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a771f1eb/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java index 90ef239..07c5428 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java @@ -47,8 +47,9 @@ public class RoomOptionsDTO implements Serializable { return roomId; } - public void setRoomId(Long roomId) { + public RoomOptionsDTO setRoomId(Long roomId) { this.roomId = roomId; + return this; } public Long getRecordingId() { @@ -63,8 +64,9 @@ public class RoomOptionsDTO implements Serializable { return moderator; } - public void setModerator(boolean moderator) { + public RoomOptionsDTO setModerator(boolean moderator) { this.moderator = moderator; + return this; } public boolean isShowAudioVideoTest() { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a771f1eb/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java index ad9945e..a345860 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java @@ -46,24 +46,27 @@ public class ExternalUserDTO implements Serializable { return login; } - public void setLogin(String login) { + public ExternalUserDTO setLogin(String login) { this.login = login; + return this; } public String getFirstname() { return firstname; } - public void setFirstname(String firstname) { + public ExternalUserDTO setFirstname(String firstname) { this.firstname = firstname; + return this; } public String getLastname() { return lastname; } - public void setLastname(String lastname) { + public ExternalUserDTO setLastname(String lastname) { this.lastname = lastname; + return this; } public String getProfilePictureUrl() { @@ -78,24 +81,27 @@ public class ExternalUserDTO implements Serializable { return email; } - public void setEmail(String email) { + public ExternalUserDTO setEmail(String email) { this.email = email; + return this; } public String getExternalId() { return externalId; } - public void setExternalId(String externalId) { + public ExternalUserDTO setExternalId(String externalId) { this.externalId = externalId; + return this; } public String getExternalType() { return externalType; } - public void setExternalType(String externalType) { + public ExternalUserDTO setExternalType(String externalType) { this.externalType = externalType; + return this; } public static ExternalUserDTO fromString(String s) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a771f1eb/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java index a1b213f..ef90fdb 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java @@ -62,7 +62,7 @@ public class OmAuthenticationStrategy extends DefaultAuthenticationStrategy { public void save(final String username, final String password, final Type type, final Long domainId) { if (type != Type.oauth) { - super.save(username, password, type.name(), "" + domainId); + super.save(username, password, type.name(), String.valueOf(domainId)); } } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a771f1eb/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java index 377e9fa..c3643c2 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java @@ -19,15 +19,36 @@ package org.apache.openmeetings.web.app; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import javax.servlet.http.Cookie; + +import org.apache.openmeetings.AbstractWicketTester; import org.apache.openmeetings.db.entity.user.User; import org.junit.Test; -public class TestOmAuthenticationStrategy { +public class TestOmAuthenticationStrategy extends AbstractWicketTester { @Test public void test() { OmAuthenticationStrategy s = new OmAuthenticationStrategy(); s.save(null, null, User.Type.oauth, null); + assertNull("Wasn't saved, should not be loaded", s.load()); + + s.save("aa", "bb", User.Type.contact, null); + copyCookies(); + assertNotNull("Should be loaded", s.load()); + assertEquals(0, s.decode(null).length); + assertEquals(4, s.decode("1").length); + assertEquals(4, s.decode("1-sep-2").length); + assertEquals(4, s.decode("1-sep-2-sep-user").length); + assertEquals(4, s.decode("1-sep-2-sep-user-sep-3").length); + } + + private void copyCookies() { + for (Cookie c : tester.getResponse().getCookies()) { + tester.getRequest().addCookie(c); + } } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a771f1eb/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java new file mode 100644 index 0000000..34f39d0 --- /dev/null +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.openmeetings.web.app; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.apache.openmeetings.AbstractWicketTester; +import org.apache.openmeetings.db.entity.user.User; +import org.apache.openmeetings.util.OmException; +import org.junit.Test; + +public class TestWebSession extends AbstractWicketTester { + @Test + public void testLogin() throws OmException { + WebSession ws = WebSession.get(); + assertFalse("Should not be signed in", ws.isSignedIn()); + + try { + ws.signIn(username, "", User.Type.contact, null); + fail("Exception should be thrown"); + } catch(OmException exc) { + assertTrue("Expected exception", true); + } + assertFalse(ws.signIn(username, "", User.Type.user, null)); + assertTrue(ws.signIn(username, userpass, User.Type.user, null)); + try { + ws.signIn(username, userpass, User.Type.ldap, null); + fail("Exception should be thrown"); + } catch(OmException exc) { + assertTrue("Expected exception", true); + } + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a771f1eb/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java index ed4ec1e..f21318f 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java @@ -37,8 +37,11 @@ import org.apache.openmeetings.db.dto.room.RoomOptionsDTO; import org.apache.openmeetings.db.dto.user.ExternalUserDTO; import org.apache.openmeetings.db.dto.user.UserDTO; import org.apache.openmeetings.db.entity.user.Address; +import org.apache.openmeetings.db.entity.user.User; +import org.apache.openmeetings.util.OmException; import org.apache.openmeetings.web.app.WebSession; import org.apache.wicket.util.string.StringValue; +import org.junit.Assert; import org.junit.Test; public class TestUserService extends AbstractWebServiceTest { @@ -55,31 +58,45 @@ public class TestUserService extends AbstractWebServiceTest { assertNotNull("Valid ServiceResult should be returned", r); } - @Test - public void hashTest() { - ServiceResult r = login(); - ExternalUserDTO user = new ExternalUserDTO(); - user.setExternalId("1"); - user.setExternalType("OmJunitTests"); - user.setEmail("[email protected]"); - user.setFirstname("First Name 1"); - user.setLastname("Last Name 1"); - user.setLogin("login1"); - RoomOptionsDTO options = new RoomOptionsDTO(); - options.setRoomId(5L); - options.setModerator(true); + private static ServiceResult getHash(String sid) { + ExternalUserDTO user = new ExternalUserDTO() + .setExternalId("1") + .setExternalType(UNIT_TEST_EXT_TYPE) + .setEmail("[email protected]") + .setFirstname("First Name 1") + .setLastname("Last Name 1") + .setLogin("login1"); + RoomOptionsDTO options = new RoomOptionsDTO() + .setRoomId(5L) + .setModerator(true); Response resp = getClient(USER_SERVICE_URL) .path("/hash") - .query("sid", r.getMessage()) + .query("sid", sid) .form(new Form().param("user", user.toString()).param("options", options.toString())); assertNotNull("Valid ServiceResult should be returned", resp); assertEquals("Call should be successful", Response.Status.OK.getStatusCode(), resp.getStatus()); - ServiceResult r1 = resp.readEntity(ServiceResult.class); + return resp.readEntity(ServiceResult.class); + } + + @Test + public void hashTestNoAuth() { + ServiceResult r = getHash("aa"); + assertEquals("OM Call should NOT be successful", r.getType(), Type.ERROR.name()); + } + + @Test + public void hashTest() throws OmException { + ServiceResult r = login(); + ServiceResult r1 = getHash(r.getMessage()); assertEquals("OM Call should be successful", r1.getType(), Type.SUCCESS.name()); WebSession ws = WebSession.get(); + assertTrue(ws.signIn(username, userpass, User.Type.user, null)); + Long userId0 = WebSession.getUserId(); ws.checkHashes(StringValue.valueOf(r1.getMessage()), StringValue.valueOf("")); assertTrue("Login via secure hash should be successful", ws.isSignedIn()); + Long userId1 = WebSession.getUserId(); + Assert.assertNotEquals(userId0, userId1); } @Test @@ -99,7 +116,7 @@ public class TestUserService extends AbstractWebServiceTest { u.getAddress().setCountry(Locale.getDefault().getCountry()); u.setTimeZoneId(tz); u.setExternalId(uuid); - u.setExternalType("OmJunitTests"); + u.setExternalType(UNIT_TEST_EXT_TYPE); UserDTO user = getClient(USER_SERVICE_URL) .path("/") .query("sid", r.getMessage())
