Passwords should be hashed using Bcrypt :
```
-# pip3 install bcrypt # if you don't have the bcrypt python lib installed, should be done once.
+# pip3 install --no-cache-dir bcrypt # if you don't have the bcrypt python lib installed, should be done once.
# python3 -c 'import bcrypt; print(bcrypt.hashpw("password".encode(), bcrypt.gensalt(rounds=10, prefix=b"2a")))'
```
- The Upgrade strategy for Frankfurt can be found here:`<https://wiki.onap.org/display/DW/Frankfurt+CLAMP+Container+upgrade+strategy>`_
- New Docker Containers are available. the list of containers composing this release are below:
- - clamp-backend-filebeat-onap: docker.elastic.co/beats/filebeat 5.5.0
- - clamp-backend: nexus3.onap.org:10001/onap/clamp-backend 5.0.7
- - clamp-frontend: nexus3.onap.org:10001/onap/clamp-frontend 5.0.7
- - clamp-dash-es: nexus3.onap.org:10001/onap/clamp-dashboard-elasticsearch 5.0.3
- - clamp-dash-kibana: nexus3.onap.org:10001/onap/clamp-dashboard-kibana 5.0.3
- - clamp-dash-logstash: nexus3.onap.org:10001/onap/clamp-dashboard-logstash 5.0.3
+
+ - clamp-backend-filebeat-onap: docker.elastic.co/beats/filebeat 5.5.0
+ - clamp-backend: nexus3.onap.org:10001/onap/clamp-backend 5.0.7
+ - clamp-frontend: nexus3.onap.org:10001/onap/clamp-frontend 5.0.7
+ - clamp-dash-es: nexus3.onap.org:10001/onap/clamp-dashboard-elasticsearch 5.0.3
+ - clamp-dash-kibana: nexus3.onap.org:10001/onap/clamp-dashboard-kibana 5.0.3
+ - clamp-dash-logstash: nexus3.onap.org:10001/onap/clamp-dashboard-logstash 5.0.3
Version: 4.1.3 (El-Alto)
- "../../../src/test/resources/http-cache/:/script/:ro"
ports:
- "8085:8085"
- command: /bin/sh -c "pip install requests && pip install simplejson && python -u /script/third_party_proxy.py -v true --port 8085 --root /thirdparty --proxyaddress third-party-proxy:8085"
+ command: /bin/sh -c "pip install --no-cache-dir requests && pip install --no-cache-dir simplejson && python -u /script/third_party_proxy.py -v true --port 8085 --root /thirdparty --proxyaddress third-party-proxy:8085"
protected void configure(HttpSecurity http) {
try {
http.csrf().disable().httpBasic().and().authorizeRequests().antMatchers("/restservices/clds/v1/user/**")
- .authenticated().anyRequest().permitAll().and().logout()
- .logoutUrl("/restservices/clds/v1/user/logout").logoutSuccessUrl("/index.html")
- .invalidateHttpSession(true).deleteCookies("JSESSIONID").and().sessionManagement()
+ .authenticated().anyRequest().permitAll().and().sessionManagement()
.maximumSessions(1);
} catch (Exception e) {
done
echo 'Installing requests packages for Python'
-pip install requests
+pip install --no-cache-dir requests
echo 'Executing the Http proxy in Cache mode only'
python -u third_party_proxy.py --port 8080 --root /usr/src/http-cache-app/data-cache $python_proxyaddress
constructor() {
super();
this.getUser = this.getUser.bind(this);
- this.logout = this.logout.bind(this);
this.updateLoopCache = this.updateLoopCache.bind(this);
this.loadLoop = this.loadLoop.bind(this);
this.closeLoop = this.closeLoop.bind(this);
this.setState({ userName: user })
});
}
-
- logout() {
- UserService.logout().then(user => {
- this.setState({ userName: user });
- window.location.reload();
- });
-
- }
renderMenuNavBar() {
return (
<Navbar.Text>
<StyledLoginInfo>Signed in as: </StyledLoginInfo>
<StyledRouterLink to="/userInfo">{this.state.userName}</StyledRouterLink>
- <StyledRouterLink to="/logout/"> (logout)</StyledRouterLink>
</Navbar.Text>
);
}
<Route path="/undeploy" render={(routeProps) => (<PerformAction {...routeProps} loopAction="undeploy" loopCache={this.getLoopCache()} updateLoopFunction={this.updateLoopCache} showSucAlert={this.showSucAlert} showFailAlert={this.showFailAlert}/>)} />
<Route path="/deploy" render={(routeProps) => (<DeployLoopModal {...routeProps} loopCache={this.getLoopCache()} updateLoopFunction={this.updateLoopCache} showSucAlert={this.showSucAlert} showFailAlert={this.showFailAlert}/>)} />
<Route path="/refreshStatus" render={(routeProps) => (<RefreshStatus {...routeProps} loopCache={this.getLoopCache()} updateLoopFunction={this.updateLoopCache} showSucAlert={this.showSucAlert} showFailAlert={this.showFailAlert}/>)} />
- <Route path="/logout" render={this.logout} />
<GlobalClampStyle />
{this.renderAlertBar()}
{this.renderNavBar()}
expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
})
- test('Test logout method', async () => {
- const flushPromises = () => new Promise(setImmediate);
- const component = shallow(<LoopUI />)
- const instance = component.instance();
- instance.logout();
- await flushPromises();
- expect(component.state('userName')).toEqual("testUser");
- })
-
test('Test loadLoop method refresh suc', async () => {
const historyMock = { push: jest.fn() };
LoopService.getLoop = jest.fn().mockImplementation(() => {
path="/refreshStatus"
render={[Function]}
/>
- <Route
- path="/logout"
- render={[Function]}
- />
<GlobalStyleComponent />
<div>
<Alert
>
testUser
</Styled(Link)>
- <Styled(Link)
- to="/logout/"
- >
- (logout)
- </Styled(Link)>
</NavbarText>
</Navbar>
<styled.div>
path="/refreshStatus"
render={[Function]}
/>
- <Route
- path="/logout"
- render={[Function]}
- />
<GlobalStyleComponent />
<div>
<Alert
<Styled(Link)
to="/userInfo"
/>
- <Styled(Link)
- to="/logout/"
- >
- (logout)
- </Styled(Link)>
</NavbarText>
</Navbar>
<styled.div>
return UserService.notLoggedUserName;
});
}
-
- static logout() {
- return fetch('/restservices/clds/v1/user/logout', {
- method: 'POST',
- credentials: 'same-origin'
- })
- .then(function (response) {
- console.debug("logout response received, status code:", response.status);
- if (response.ok) {
- return response.text();
- } else {
- console.error("logout response is nok");
- return UserService.notLoggedUserName;
- }
- })
- .then(function (data) {
- console.info ("User disconnected:",data)
- return data;
- })
- .catch(function(error) {
- console.warn("logout error received, user set to: ",UserService.notLoggedUserName);
- console.error("logout error:",error);
- return UserService.notLoggedUserName;
- });
- }
static getUserInfo() {
return fetch('/restservices/clds/v2/clampInformation', {