Closed alexbudarov closed 2 years ago
Jmix: 1.0.0.
I try to implement the same as described here, but for Jmix: https://www.jmix.io/cuba-platform/guides/anonymous-access-and-social-login
Project attached: jmix-pm-security-advanced.zip
jmix.ui.allowAnonymousAccess = true jmix.ui.initialScreenId = MainScreen
Added this screen as allowed for the anonymous role.
Start server, open http://localhost:8080 in the browser.
Expected: main screen is opened. Actual: redirected to the login screen.
Also io.jmix.ui.UiProperties#getInitialScreenId() method isn't used anywhere.
To correctly work with anonymous user additionally to properties:
You must to create a role for the anonymous. For instance:
@ResourceRole(name = "Anonymous Access", code = AnonymousRole.CODE) public interface AnonymousRole { String CODE = "anonymous-access"; @ScreenPolicy(screenIds = {"MainScreen"}) void screens(); }
And assign it in the DatabaseUserRepository:
@Primary @Component("UserRepository") public class DatabaseUserRepository extends AbstractDatabaseUserRepository<User> { // some methods @Override protected void initAnonymousUser(User anonymousUser) { Collection<GrantedAuthority> authorities = getGrantedAuthoritiesBuilder() .addResourceRole(AnonymousRole.CODE) .build(); anonymousUser.setAuthorities(authorities); } }
Configure the anonymous access like described above. Open application in the browser, MainScreen should be opened instead of LoginScreen.
1.2.0-SNAPSHOT - verified
Jmix: 1.0.0.
I try to implement the same as described here, but for Jmix: https://www.jmix.io/cuba-platform/guides/anonymous-access-and-social-login
Project attached: jmix-pm-security-advanced.zip
Added this screen as allowed for the anonymous role.
Start server, open http://localhost:8080 in the browser.
Expected: main screen is opened. Actual: redirected to the login screen.
Also io.jmix.ui.UiProperties#getInitialScreenId() method isn't used anywhere.
Changes
To correctly work with anonymous user additionally to properties:
You must to create a role for the anonymous. For instance:
And assign it in the DatabaseUserRepository:
QA
Configure the anonymous access like described above. Open application in the browser, MainScreen should be opened instead of LoginScreen.