import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
-import org.sonar.api.ServerComponent;
import org.sonar.api.ServerSide;
import org.sonar.api.i18n.I18n;
import org.sonar.api.resources.Scopes;
private final UserSession userSession;
public ComponentService(DbClient dbClient, ResourceKeyUpdaterDao resourceKeyUpdaterDao, I18n i18n, ResourceIndexerDao resourceIndexerDao,
- InternalPermissionService permissionService, UserSession userSession) {
+ InternalPermissionService permissionService, UserSession userSession) {
this.dbClient = dbClient;
this.resourceKeyUpdaterDao = resourceKeyUpdaterDao;
this.i18n = i18n;
private final DuplicationsJsonWriter duplicationsJsonWriter;
private final UserSession userSession;
- public ShowAction(DbClient dbClient, ComponentDao componentDao, MeasureDao measureDao, DuplicationsParser parser, DuplicationsJsonWriter duplicationsJsonWriter, UserSession userSession) {
+ public ShowAction(DbClient dbClient, ComponentDao componentDao, MeasureDao measureDao, DuplicationsParser parser,
+ DuplicationsJsonWriter duplicationsJsonWriter, UserSession userSession) {
this.dbClient = dbClient;
this.componentDao = componentDao;
this.measureDao = measureDao;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import org.sonar.api.ServerComponent;
import org.sonar.api.ServerSide;
import org.sonar.api.i18n.I18n;
import org.sonar.api.issue.internal.FieldDiffs;
import java.util.Collection;
import java.util.List;
-import org.sonar.api.ServerComponent;
import org.sonar.api.ServerSide;
import org.sonar.api.issue.Issue;
import org.sonar.api.issue.internal.FieldDiffs;
private final Languages languages;
private final UserSession userSession;
- public ProjectAssociationActions(QProfileProjectOperations profileProjectOperations, QProfileLookup profileLookup, ComponentService componentService, Languages languages, UserSession userSession) {
+ public ProjectAssociationActions(QProfileProjectOperations profileProjectOperations, QProfileLookup profileLookup,
+ ComponentService componentService, Languages languages, UserSession userSession) {
this.profileProjectOperations = profileProjectOperations;
this.profileLookup = profileLookup;
this.componentService = componentService;
private final ProfileImporter[] importers;
private final UserSession userSession;
- public QProfileCreateAction(DbClient dbClient, QProfileFactory profileFactory, QProfileExporters exporters, Languages languages, ProfileImporter[] importers, UserSession userSession) {
+ public QProfileCreateAction(DbClient dbClient, QProfileFactory profileFactory, QProfileExporters exporters,
+ Languages languages, ProfileImporter[] importers, UserSession userSession) {
this.dbClient = dbClient;
this.profileFactory = profileFactory;
this.exporters = exporters;
* Used in manual_rules_controller.rb
*/
public List<Rule> searchManualRules() {
- return service.search(new RuleQuery().setRepositories(newArrayList(RuleDoc.MANUAL_REPOSITORY)).setSortField(RuleNormalizer.RuleField.NAME), new QueryContext(userSession)).getHits();
+ return service.search(new RuleQuery().setRepositories(newArrayList(RuleDoc.MANUAL_REPOSITORY))
+ .setSortField(RuleNormalizer.RuleField.NAME), new QueryContext(userSession)).getHits();
}
// sqale
ThreadLocalUserSession userSession = platform.getContainer().getComponentByType(ThreadLocalUserSession.class);
if (userSession == null) {
Loggers.get(UserSessionFilter.class).error("Can not retrieve ThreadLocalUserSession from Platform");
- }
- else {
+ } else {
userSession.remove();
}
}
private ThreadLocalUserSession threadLocalUserSession = new ThreadLocalUserSession();
private Platform platform = mock(Platform.class);
private ComponentContainer componentContainer = mock(ComponentContainer.class);
+ private HttpServletRequest httpRequest = mock(HttpServletRequest.class);
+ private ServletResponse httpResponse = mock(ServletResponse.class);
+ private FilterChain chain = mock(FilterChain.class);
@Before
public void setUp() {
when(platform.getContainer()).thenReturn(componentContainer);
- when(componentContainer.getComponentByType(ThreadLocalUserSession.class)).thenReturn(threadLocalUserSession);
// for test isolation
threadLocalUserSession.remove();
}
@Test
public void should_cleanup_user_session_after_request_handling() throws IOException, ServletException {
- HttpServletRequest httpRequest = mock(HttpServletRequest.class);
- ServletResponse httpResponse = mock(ServletResponse.class);
- FilterChain chain = mock(FilterChain.class);
+ when(componentContainer.getComponentByType(ThreadLocalUserSession.class)).thenReturn(threadLocalUserSession);
threadLocalUserSession.set(new MockUserSession("karadoc").setUserId(123));
assertThat(threadLocalUserSession.hasSession()).isTrue();
assertThat(threadLocalUserSession.hasSession()).isFalse();
}
+ @Test
+ public void does_not_fail_if_container_has_no_ThreadLocalUserSession() throws Exception {
+ UserSessionFilter filter = new UserSessionFilter(platform);
+ filter.doFilter(httpRequest, httpResponse, chain);
+ }
+
@Test
public void just_for_fun_and_coverage() throws ServletException {
UserSessionFilter filter = new UserSessionFilter(platform);