Problem :
Well, I know that having named parameter is better “-file=”
etc..
But for a simple task, I wanted to give :
./mycommand arg1 arg2 ‘’ ‘’ arg5
And pass those parameters to a function…
Solution :
Not so lost in internet but easy to do at the end !
So basically, as simple as :
# Solution OK : use arrau
all_args=("$@");
myfunction "${all_args[@]}"
# Loop over parameters
for i in "${@}"; do
echo "$i"
done
for i in "${all_args[@]}"; do
echo "$i"
done
From :
#!/bin/bash
all_args=("$@");
myfunction() {
arg1=$1
arg2=$2
arg3=${3:-'default3'}
arg4=${4:-'default4'}
arg5=${5:-'default5'}
echo "arg1=$arg1"
echo "arg2=$arg2"
echo "arg3=$arg3"
echo "arg4=$arg4"
echo "arg5=$arg5"
}
echo "--------------- args hard-codede"
myfunction 1 2 "" "" yes
echo "--------------- explode array with quote"
myfunction $(printf ""%s" " "${all_args[@]}")
echo "--------------- working just expand array"
myfunction "${all_args[@]}"
With the following command line :
./test.sh 1 2 "" "" yes
--------------- args hard-codede
arg1=1
arg2=2
arg3=default3
arg4=default4
arg5=yes
--------------- explode array with quote
arg1="1"
arg2="2"
arg3=""
arg4=""
arg5="yes"
--------------- working just expand array
arg1=1
arg2=2
arg3=default3
arg4=default4
arg5=yes
Problem :
It seems that I have no metric on one particular method while it works for all the others.
This is method is :
public final boolean myMethod(myArgs)
Does the fact that this method is final is a problem for bytecode instrumentation of Introscope ?
Solution :
No. It works :) As usual. My problem is somewhere else.
3 classes :
Parent
package com.test.caapm.finalmethodtest;
public class ParentClass {
public void finalMethod() {
System.out.println("parentFinalMethod");
}
}
Middle
package com.test.caapm.finalmethodtest;
public class TestFinalMethodAgent extends ParentClass {
public static void staticMethod() {
System.out.println("staticMethod");
}
public final static void finalStaticMethod() {
System.out.println("finalStaticMethod");
}
public final void finalMethod() {
System.out.println("finalMethod");
}
public static void main(String... args) {
TestFinalMethodAgent test = new TestFinalMethodAgent();
while(true) {
test.finalMethod();
TestFinalMethodAgent.staticMethod();
TestFinalMethodAgent.finalStaticMethod();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
Child
package com.test.caapm.finalmethodtest;
public class ChildClass extends TestFinalMethodAgent{
}
Pbd
SetFlag: TestFinalMethod
TurnOn: TestFinalMethod
IdentifyDeepInheritedAs: com.test.caapm.finalmethodtest.ParentClass TestFinalMethod
TraceAllMethodsIfFlagged: TestFinalMethod PerIntervalCounter "{classname} - {method}"
Le problème :
J'essaie d'utiliser Owncloud avec un OVH mutualisé.
J'ai déplacé des fichiers dans cette arborescence, et il faut maintenant faire de la ligne de commande… qui n'est pas disponible en OVH mutualisé.
Solution :
Ligne de commande à exécuter :
./occ files:scan <mon chemin> <mon user>
Quelques difficultés :
- Accès à la ligne de commande, on utilise un shell PHP, par exemple P0wnyShell
- Trouver le binaire occ : il est à la racine :)
- Droit d'exécution sur occ :
chmod 744 occ
- Identifier l'exécutable PHP :
ps -aef | grep php
2617 9693 0 09:44 ? 00:00:00 php7.4 -c /usr/local/php7.4/etc/php-cgi.ini -d display_errors=0 -d session.force_path=1 -- p0wnyshell.php
- Modifier le fichier occ pour mettre le bon chemin :
#!/usr/bin/env /usr/local/php7.4/bin/php
- Executer :
./occ files:scan <mon chemin> <mon user>
Lire la suite de OVH mutualisé et owncloud
Problem :
When using Spring Oauth2 resource server, it checks the received token, to do so it must retrieve token validaty or get certificates to validate token. These two calls are usually made in HTTPS for obvious security reason.
When the certificate is not known by the Spring Oauth2 resource server JVM, it fails as SSL handshake can not complete. It fails. Without a single message :)
Solution :
Put the following log level on :
org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter: DEBUG
I see that the exception is propagate to authenticationFailureHandler I see that it should be handle by authenticationFailureHandler
but somewhere in the chain, it's not traced… Could search deeper next time.
It will activate this log :
try {
AuthenticationManager authenticationManager = this.authenticationManagerResolver.resolve(request);
Authentication authenticationResult = authenticationManager.authenticate(authenticationRequest);
...
} catch (AuthenticationException var11) {
SecurityContextHolder.clearContext();
if (debug) {// 134
this.logger.debug("Authentication request for failed!", var11);
}
this.authenticationFailureHandler.onAuthenticationFailure(request, response, var11);
}
Problem :
I use Keycloak 19.0.1 behind a proxy (nginx) and wasn't able to connect to the admin part of keycloak.
With a reverse proxy nginx and keycloak, login in admin console lead to be blocked on :
/realms/master/protocol/openid-connect/login-status-iframe.html/init?client_id=security-admin-console ....
With a 204
return code and no other errors.
Solution :
I had to explore keycloak source code to find the cause ; This test failed in keycloak.js : if ((event.origin !== loginIframe.iframeOrigin)
in keycloak.js
After a (lot of) time of search, it appears that it compares : https://mydomain/keycloak
and https://mydomain:443/keycloak
because I'd setup hostname-port
to 443
in keycloak.config.
My keycloak configuration :
hostname=mydomain
proxy=reencrypt
hostname-strict=false
hostname-port=443
hostname-path=keycloak
http-relative-path=keycloak
hostname-admin-url=https://mydomain/keycloak
So keycloak build his URL as follow : https://mydomain:443/
And the browser send : https://mydomain/
as 443 is a default port and not displayed in the URL.
By removing the port, it works perfectly :
#hostname-port=443
I open a discussion to improve documentation here
Fil RSS des articles