2022-01-12 16:01:54 +00:00
|
|
|
import {
|
|
|
|
keycloakBefore,
|
|
|
|
keycloakBeforeEach,
|
|
|
|
} from "../support/util/keycloak_hooks";
|
|
|
|
import AdminClient from "../support/util/AdminClient";
|
|
|
|
import LoginPage from "../support/pages/LoginPage";
|
|
|
|
import ListingPage from "../support/pages/admin_console/ListingPage";
|
|
|
|
import Masthead from "../support/pages/admin_console/Masthead";
|
|
|
|
import SidebarPage from "../support/pages/admin_console/SidebarPage";
|
|
|
|
import AuthorizationTab from "../support/pages/admin_console/manage/clients/AuthorizationTab";
|
2022-01-21 14:10:36 +00:00
|
|
|
import ModalUtils from "../support/util/ModalUtils";
|
2022-01-12 16:01:54 +00:00
|
|
|
|
|
|
|
describe("Client authentication subtab", () => {
|
|
|
|
const adminClient = new AdminClient();
|
|
|
|
const loginPage = new LoginPage();
|
|
|
|
const listingPage = new ListingPage();
|
|
|
|
const masthead = new Masthead();
|
|
|
|
const sidebarPage = new SidebarPage();
|
|
|
|
const authenticationTab = new AuthorizationTab();
|
|
|
|
const clientId =
|
|
|
|
"client-authentication-" + (Math.random() + 1).toString(36).substring(7);
|
|
|
|
|
|
|
|
before(() => {
|
|
|
|
adminClient.createClient({
|
|
|
|
protocol: "openid-connect",
|
|
|
|
clientId,
|
|
|
|
publicClient: false,
|
|
|
|
authorizationServicesEnabled: true,
|
|
|
|
serviceAccountsEnabled: true,
|
|
|
|
standardFlowEnabled: true,
|
|
|
|
});
|
|
|
|
keycloakBefore();
|
|
|
|
loginPage.logIn();
|
2022-01-21 14:10:36 +00:00
|
|
|
sidebarPage.goToClients();
|
|
|
|
listingPage.searchItem(clientId).goToItemDetails(clientId);
|
|
|
|
authenticationTab.goToAuthenticationTab();
|
2022-01-12 16:01:54 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
after(() => {
|
|
|
|
adminClient.deleteClient(clientId);
|
|
|
|
});
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
keycloakBeforeEach();
|
|
|
|
});
|
|
|
|
|
|
|
|
it("Should update the resource server settings", () => {
|
|
|
|
authenticationTab.setPolicy("DISABLED").saveSettings();
|
|
|
|
masthead.checkNotificationMessage("Resource successfully updated");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("Should create a resource", () => {
|
|
|
|
authenticationTab.goToResourceSubTab();
|
|
|
|
authenticationTab.assertDefaultResource();
|
|
|
|
|
|
|
|
authenticationTab
|
|
|
|
.goToCreateResource()
|
|
|
|
.fillResourceForm({
|
|
|
|
name: "Resource",
|
|
|
|
displayName: "The display name",
|
|
|
|
type: "type",
|
|
|
|
uris: ["one", "two"],
|
|
|
|
})
|
|
|
|
.save();
|
|
|
|
|
|
|
|
masthead.checkNotificationMessage("Resource created successfully");
|
2022-01-21 14:10:36 +00:00
|
|
|
authenticationTab.cancel();
|
2022-01-12 16:01:54 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it("Should create a scope", () => {
|
|
|
|
authenticationTab.goToScopeSubTab();
|
|
|
|
authenticationTab
|
|
|
|
.goToCreateScope()
|
|
|
|
.fillScopeForm({
|
|
|
|
name: "The scope",
|
|
|
|
displayName: "Display something",
|
|
|
|
iconUri: "res://something",
|
|
|
|
})
|
|
|
|
.save();
|
|
|
|
|
|
|
|
masthead.checkNotificationMessage(
|
|
|
|
"Authorization scope created successfully"
|
|
|
|
);
|
|
|
|
authenticationTab.goToScopeSubTab();
|
|
|
|
listingPage.itemExist("The scope");
|
|
|
|
});
|
|
|
|
|
2022-01-21 14:10:36 +00:00
|
|
|
it("Should create a policy", () => {
|
|
|
|
authenticationTab.goToPolicySubTab();
|
|
|
|
cy.intercept(
|
|
|
|
"GET",
|
|
|
|
"/auth/admin/realms/master/clients/*/authz/resource-server/policy/regex/*"
|
|
|
|
).as("get");
|
|
|
|
authenticationTab
|
|
|
|
.goToCreatePolicy("regex")
|
|
|
|
.fillBasePolicyForm({
|
|
|
|
name: "Regex policy",
|
|
|
|
description: "Policy for regex",
|
|
|
|
targetClaim: "I don't know",
|
|
|
|
regexPattern: ".*?",
|
|
|
|
})
|
|
|
|
.save();
|
|
|
|
|
|
|
|
cy.wait(["@get"]);
|
|
|
|
masthead.checkNotificationMessage("Successfully created the policy");
|
|
|
|
authenticationTab.cancel();
|
|
|
|
});
|
|
|
|
|
|
|
|
it("Should delete a policy", () => {
|
|
|
|
authenticationTab.goToPolicySubTab();
|
|
|
|
listingPage.deleteItem("Regex policy");
|
|
|
|
new ModalUtils().confirmModal();
|
|
|
|
|
|
|
|
masthead.checkNotificationMessage("The Policy successfully deleted");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("Should create a client policy", () => {
|
|
|
|
authenticationTab.goToPolicySubTab();
|
|
|
|
cy.intercept(
|
|
|
|
"GET",
|
|
|
|
"/auth/admin/realms/master/clients/*/authz/resource-server/policy/client/*"
|
|
|
|
).as("get");
|
|
|
|
authenticationTab
|
|
|
|
.goToCreatePolicy("client")
|
|
|
|
.fillBasePolicyForm({
|
|
|
|
name: "Client policy",
|
|
|
|
description: "Extra client field",
|
|
|
|
})
|
|
|
|
.inputClient("master-realm")
|
|
|
|
.save();
|
|
|
|
|
|
|
|
cy.wait(["@get"]);
|
|
|
|
masthead.checkNotificationMessage("Successfully created the policy");
|
|
|
|
authenticationTab.cancel();
|
|
|
|
});
|
|
|
|
|
2022-01-12 16:01:54 +00:00
|
|
|
it("Should create a permission", () => {
|
|
|
|
authenticationTab.goToPermissionsSubTab();
|
|
|
|
authenticationTab
|
|
|
|
.goToCreatePermission("resource")
|
|
|
|
.fillPermissionForm({
|
|
|
|
name: "Permission name",
|
|
|
|
description: "Something describing this permission",
|
|
|
|
})
|
|
|
|
.selectResource("Resource")
|
|
|
|
.save();
|
|
|
|
|
|
|
|
masthead.checkNotificationMessage("Successfully created the permission");
|
|
|
|
});
|
|
|
|
});
|