Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Доброго всем здравия!
У кого есть небольшой, но работающий пример такого приложения?
Поделитесь, если не в лом.
Все, что я находил очень громоздко, требует множества сторонних JAR-модулей, и постоянно возникают проблемы с версионной несовместимостью между ними.
Разрулить их самостоятельно я пока не могу.
Что мне нужно?
Небольшое WEB-приложение, которое определяет имя доменного пользователя, который зашел на страницу.
В ASP.NET C# я делал это без проблем, 3 строчки кода и все, а в JAVA столкнулся с трудностями.
Наверно из-за недостатка квалификации.
26 янв 17, 09:23    [20147674]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008,
Это у тебя спорт такой? Сначала изучит сабж(прошлая твоя тема). Потом организовать диспут на форуме)).
Ты же в прошлый раз эту тему закрыл.
26 янв 17, 09:42    [20147716]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008,
Это у тебя спорт такой? Сначала изучит сабж(прошлая твоя тема). Потом организовать диспут на форуме)).
Ты же в прошлый раз эту тему закрыл.

Увы, нет.
Если считаете меня троллем, то можете не принимать участие в дискуссии.
Делов-то...
26 янв 17, 09:45    [20147727]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Срач устраивать не будем.
Спрошу совсем просто

На ASP.NET есть такой код
...
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            string strUserName = this.Request.LogonUserIdentity.Name;
...

Прошу привести пример кода на Java, чтобы так же получить имя доменного пользователя.
Спасибо.
26 янв 17, 09:54    [20147757]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008
Если считаете меня троллем, то можете не принимать участие в дискуссии.

Вопрос был простой - что с тем топиком и той темой в декабре? Что не получилось?
А что делать вам и мне каждый сам решает.
26 янв 17, 10:04    [20147793]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008
Если считаете меня троллем, то можете не принимать участие в дискуссии.

Вопрос был простой - что с тем топиком и той темой в декабре? Что не получилось?
А что делать вам и мне каждый сам решает.

По поводу этой темы могу сказать, что ничего не получилось.
При компилляции проекта постоянно выходят ошибки, которые я не могу пофиксить, так как непонятно что нужно делать.
MAVEN проекты зависают на процессе обновления библиотек, ну тут понятно.
Это особенности моей защищенной сети, которая режет групповыми политиками безопасности "ненужные" с её точки зрения сайты.
Но даже с не-MAVEN проектами тоже нет прогресса.
Вот например
package org.nkey.test.ntlm.filter;

import org.nkey.test.ntlm.ldap.ActiveDirectoryLdapUserDetailsMapper;
import org.nkey.test.ntlm.ldap.LdapPrinciple;
import org.ntlmv2.liferay.NtlmUserAccount;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import org.springframework.ldap.core.DirContextOperations;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.AuthenticationServiceException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.ldap.SpringSecurityLdapTemplate;
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;

import javax.inject.Inject;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.SearchControls;
import javax.naming.ldap.LdapContext;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;


Все импорты валидны, но в коде
try {
            return SpringSecurityLdapTemplate
                    .searchForSingleEntryInternal(ctx, searchControls, ldapSearchRootDn, searchFilter,
                            new Object[]{ bindPrincipal });


Подчеркивает .searchForSingleEntryInternal пишет, что "cannot find symbol", по Alt + Enter вариантов подстановки импортов не предлагает!
26 янв 17, 10:31    [20147934]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Сам пример выглядит простым (почему и был мной выбран)
Контроллер
package org.nkey.test.ntlm.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SecuredController {
    @RequestMapping({ "/", "/index" })
    public String index() {
        return "welcom";
    }
}


Конфиг
package org.nkey.test.ntlm.conf;

import org.nkey.test.ntlm.BasePackageMarker;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;


@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses = BasePackageMarker.class)
@ImportResource({ "classpath*:*spring-security.xml" })
public class WebConfiguration {
    @Bean
    public InternalResourceViewResolver internalResourceViewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("view/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
}


Страница welcom.jsp
<!doctype html>
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=utf-8" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<body>
<h1>Hello, <sec:authentication property="principal.displayName"/></h1>
<a href="j_spring_security_logout">Logout</a>
</body>

Тут вроде как все просто и понятно, но к нему туева хуча кода, который никак не получается скомпилировать
26 янв 17, 10:39    [20147965]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Ну и для завершения картины первоисточник примера.
26 янв 17, 10:59    [20148113]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008
Тут вроде как все просто и понятно, но к нему туева хуча кода, который никак не получается скомпилировать

в прошлый раз говорили - компилить по частям Hello World.
Т.е. должен быть рабочий пример Hello World без аутентификации. Потом её добавить.
Где рабочий?
26 янв 17, 11:21    [20148214]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008
Тут вроде как все просто и понятно, но к нему туева хуча кода, который никак не получается скомпилировать

в прошлый раз говорили - компилить по частям Hello World.
Т.е. должен быть рабочий пример Hello World без аутентификации. Потом её добавить.
Где рабочий?

1. HW создал, работает.
2. Spring Security прикрутил, работает.
3. Сейчас хочу добавить NTLM аутентификацию. Скачал пример, но что из него и как нужно добавлять пока не знаю. Сам пример не запускается.
27 янв 17, 10:19    [20152181]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008
Скачал пример, но что из него и как нужно добавлять пока не знаю.

Прогеры говорят - "Слона нужно естьпо частям".
Т.е. добавил кусок и тест с логами. При ошибке сюда логи и ошибку.
Это только если ПЕРЕД добавлением куска всё работало.
27 янв 17, 10:28    [20152239]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
Т.е. добавил кусок и тест с логами. При ошибке сюда логи и ошибку.
Это только если ПЕРЕД добавлением куска всё работало.

Вот сейчас и пытаюсь понять какой кусок в п.3 мне нужно добавлять к п.2
27 янв 17, 10:32    [20152266]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008,
этот вставил? Резултаты....и т.д.
<h1>Hello, <sec:authentication property="principal.displayName"/></h1>
27 янв 17, 10:39    [20152329]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008,
этот вставил? Резултаты....и т.д.
<h1>Hello, <sec:authentication property="principal.displayName"/></h1>

Спасибо за конкретный совет.
Попробую и напишу.
27 янв 17, 10:48    [20152397]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008,
- второй вариант (сам не юзал) - JESPA
- его код в фильтр томката. При любом запросе она лезет в контроллёр домена\LDAP и берёт всё что надо.
Потом в сессию ставит флаг.....
27 янв 17, 10:54    [20152437]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008,
этот вставил? Резултаты....и т.д.
<h1>Hello, <sec:authentication property="principal.displayName"/></h1>

Добавил, но не распознает тэги.

<%@taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>


The absolute uri: http://www.springframework.org/security/tags cannot be resolved in either web.xml or the jar files deployed with this application


В интернете советы добавить в зависимости MAVEN, но у меня проект не использует MAVEN.
Добавить библиотеку spring-security-taglibs вручную?
14 фев 17, 17:02    [20211394]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Добавил библиотку в проект вручную.
Сообщение об ошибке изменилось на
HTTP Status 500 - javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/springframework/security/core/context/SecurityContextHolder

похоже еще что-то необходимо прописать/инициализировать.
Блесну экстрасенсорными способностями - это SecurityContextHolder!
14 фев 17, 18:32    [20211627]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Добавил вручную библиотеку spring-security-core, ошибка пропала, но
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Welcome to Spring Web MVC project</title>
  </head>
    <h1>Hello, <sec:authentication property="principal.displayName"/></h1>
  <body>

  </body>
</html>

выводит только
Hello,
дальше не знаю куда рыть.
14 фев 17, 18:43    [20211655]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
я советовал рыть по двум направления:
1) добавить в рабочий проект:
<sec:authentication property="principal.displayName"/></h1
2)
JESPA

вы второе направление не отрабатывали?
По первому:
SQL2008
Добавил, но не распознает тэги.

причём тут спринг и мавен, если проект был рабочий и мы вставили одну строку?
14 фев 17, 19:14    [20211719]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
упс. Прочитал про ваше:
SQL2008
выводит только
Hello,
дальше не знаю куда рыть.

значит дело идёт))). Так держать).
Кто сказал что в Java быстро).
14 фев 17, 19:24    [20211738]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008,
думаю для спринг тут проще:
http://devcolibri.com/3810
Если без спринг, то JESPA.
14 фев 17, 19:49    [20211803]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008,
думаю для спринг тут проще:
http://devcolibri.com/3810
Если без спринг, то JESPA.

Спасибо за поддержку!

Идущий (даже медленно) осилит любую дорогу за тысячу лет, стоящий на месте никогда! (с)SQL2008
15 фев 17, 09:57    [20212848]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Petro123
SQL2008,
думаю для спринг тут проще:
http://devcolibri.com/3810

Загрузил в Эклипс проект, при запуске получаю ошибку

Cannot connect to VM
com.sun.jdi.connect.TransportTimeoutException


P.S. Почему и нервничаю, ни один проект примеров нормально не запускается.
Ни в Eclipse, ни в STS, ни в IntelliJ, ни в NetBeans.
15 фев 17, 16:25    [20214717]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
SQL2008
Member

Откуда:
Сообщений: 2858
Вот еще система выблевала мне
Errors occurred during the build.
Errors running builder 'Maven Project Builder' on project 'spring-security-exam'.
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6


как я понимаю проблемы с плагином maven-resources-plugin?
Т.е. просто скопировать последнюю полную версию Eclipse недостаточно?
Чтобы заставить её работать нужно еще глюки все вычистить и пофиксить?
15 фев 17, 16:31    [20214740]     Ответить | Цитировать Сообщить модератору
 Re: Spring NTML аутентификация  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 27071
SQL2008
Т.е. просто скопировать последнюю полную версию Eclipse недостаточно?

ты на иклипс перешёл?
Уже обсуждали, что он заточен для работы без мавен. Хотя можно и с ним).
15 фев 17, 16:44    [20214818]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Java Ответить