%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 sso客户端设计(sso mobile端)-手机版-亚星国际官网 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1

sso客户端设计(sso mobile端)

亚星管理平台 178 4

用户登录成功之后,生成 AuthToken 交给客户端保存如果是浏览器,就保存在 Cookie 中如果是手机 App 就保存在 App 本地缓存中本篇主要探讨基于 Web 站点的 SSO用户在浏览需要登录的页面时,客户端将 AuthToken 提交给 SSO 服务校验登录状态获取用户登录信息 对于登录信息的存储,建议采用 Redis。

首先,从CAS官方下载服务器端overlay包,如casoverlaytemplate53zip,解压后编译并部署到Tomcat的webapp目录,使用默认的casuser和Mellon账户登录若对安全证书有特殊要求,可修改配置文件以使用。

sso客户端设计(sso mobile端)-第1张图片-亚星国际官网

SSO指的是单点登录Single Sign On,当用户在身份认证服务器上登录了一次以后,即可获得访问单点登录系统中其他联邦系统和应用软件的权限同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统单点登录是多个。

sso客户端设计(sso mobile端)-第1张图片-亚星国际官网

最简单实现SSO的方法就是用Cookie,实现流程如下所示常用的两种web单点登录SSO的实现原理X不然发现以上的方案是把信任存储在客户端的Cookie里,这种方法虽然实现方便但立马会让人质疑两个问题Cookie不安全 不能跨域免登 对于第一个问题一般都是通过加密Cookie来处理,第二个问题是硬伤,其实这种方案的。

用一过滤器,里面获取session,参数false,为null则让他登录。

针对同一域名的系统,可以通过设置Cookie的顶级域,如acom,实现简单的SSO然而,当顶级域名不同,如天猫和淘宝,可以利用反向代理服务器如nginx作为中间层,隐藏内部服务器的复杂性,让客户端直接与反向代理交互对于更高级别的安全性和跨域管理,可以采用认证中心模式用户在认证中心验证后,会得到。

5 两个客户端 51 Maven依赖 52 applicationyml 这里contextpath不要设成,不然重定向获取code的时候回被拦截 53 WebSecurityConfig 说明 54 MemberController 55 Order项目跟它是一样的 56 关于退出 退出就是清空用于与SSO客户端建立的所有的会话,简单的来说就是使所有端点的Sessi。

其实这种方案的思路的就是要把这个信任关系存储在客户端,要实现这个也不一定只能用Cookie,用flash也能解决,flash的Shared Object API就提供了存储能力一般说来,大型系统会采取在服务端存储信任关系的做法,实现流程如下所示常用的两种web单点登录SSO的实现原理以上方案就是要把信任关系存储在单独的。

这种方式降低了登录时间消耗,提升了用户体验SSO的一个著名实现是CASCentral Authentication Service,由Yale大学开发,提供了一种企业级的开源的SSO解决方案CAS主要由CAS Server中心认证服务器和CAS Client客户端组成例如,在新浪的案例中,用户只需登录一次即可访问新浪博客和微博,体现。

sso客户端设计(sso mobile端)-第1张图片-亚星国际官网

sso单点应用优势1单点登录用户只需登录一次,即可通过单点登录系统eTrueSSO访问后台的多个应用系统,二次登陆时无需重新输入用户名和密码2CS单点登录解决方案无需修改任何现有的应用系统服务端和客户端即可实现CS单点登录系统3即装即用通过简单的配置,无须用户修改任何现有B。

sso客户端设计(sso mobile端)-第1张图片-亚星国际官网

众所周知,在OAuth2在有授权服务器资源服务器客户端这样几个角色,当我们用它来实现SSO的时候是不需要资源服务器这个角色的,有授权服务器和客户端就够了 授权服务器当然是用来做认证的,客户端就是各个应用系统,我们只需要登录成功后拿到用户信息以及用户所拥有的权限即可 之前我一直认为把那些需要权限控制的。

Casdoor的优势在于它解决了一个普遍的开发者痛点高效便捷地管理用户登录,支持第三方平台如GitHub微信登录其工作原理基于OAuth 20流程,通过六个步骤授权和验证,确保信息安全连接Casdoor有三种方式标准OIDC客户端Casdoor SDK和插件无论是使用标准库还是定制化SDK,Casdoor都提供了丰富的功能。

sso客户端设计(sso mobile端)-第1张图片-亚星国际官网

OAuth20则是一个授权协议,它允许用户授权第三方应用访问他们在其他服务器上的资源,而非用于单点登录OAuth20有四种模式,如授权码模式隐藏式模式密码式模式和客户端凭证模式,每种模式针对不同应用场景在实现SSO时,OAuth20服务端负责令牌发放,JWTJSON Web Token常用于承载Access_Token。

对于表单POST请求的业务系统,AG配置POST规则,用户登录后,点击链接时,AG会发起POST请求携带信息到服务器完成认证这一过程简化了客户端操作,请求无需跨域特点lt后端发起POST请求,简化了客户端交互,七层访问避免跨域问题 3 三层隧道访问场景表单格式认证lt 三层模式下,需配置SSO POST。

这种单点登录将用户的身份标识信息简化为OpenId存放于客户端,当用户登录某个子系统时,将OpenId传送到服务端,服务端根据OpenId构造用户验证信息,多用于CS与BS相结合的系统,流程如下 由上图可以看到,这套单点登录依赖于OpenId的传递,其验证的基础在于OpenId的存储以及发送1当用户第一次登录时。

微软已经推出了Office System,其中的SharePoint Portal Server 2003以下简称SPS2003可以用来快速地建立起一个门户网站,可以使企业内用户轻易地找到所需要的信息,协同工作,同时,也可以向Internet上的用户提供一个信息查询的门户网站如果用户的客户端和SPS2003服务器以及其他一些服务器例如Exchange。

sso客户端设计(sso mobile端)-第1张图片-亚星国际官网

1 客户端发起请求,访问,经过一个过滤器CAS提供,判断用户是否登录过如果没登录重定向到认证中心2 认证中心给客户端返回了重定向地址3 客户端重定向到4 认证中心返回了登录页面5 用户输入用户名。

在CAS和SAML2中,没有资源服务器的概念,只有认证客户端需要验证客户信息的应用和认证服务器提供认证服务的应用的概念在CAS中这叫做 casclient 和 casserver ,SAML2中这叫做 Service Providers 和 Identity Provider ,可以看出CASSAML2规范天生就是为SSO设计的,在报文结构上都考虑到了用户信息的问题SAML。

标签: sso客户端设计

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1

发表评论 (已有4条评论)

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1

评论列表

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
2024-12-06 05:42:41

用户登录成功之后,生成 AuthToken 交给客户端保存如果是浏览器,就保存在 Cookie 中如果是手机 App 就保存在 App 本地缓存中本篇主要探讨基于

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
2024-12-06 08:40:59

权协议,它允许用户授权第三方应用访问他们在其他服务器上的资源,而非用于单点登录OAuth20有四种模式,如授权码模式隐藏式模式密码式模式和客户端凭证模式,每种模式针对不同应用场景在实现SSO时,OAuth20服务端负责令

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
2024-12-06 08:50:47

false,为null则让他登录。针对同一域名的系统,可以通过设置Cookie的顶级域,如acom,实现简单的SSO然而,当顶级域名不同,如天猫和淘宝,可以利用反向代理服务器如

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
2024-12-06 01:46:51

即可实现CS单点登录系统3即装即用通过简单的配置,无须用户修改任何现有B。众所周知,在OAuth2在有授权服务器资源服务器客户端这样几个角色,当我们用它来实现SSO的时候是不需要资源服务器这个角色的,有授权服务器和客户端就够了 授权服务器当然是用来做认证

%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1